CPU: Let each MIPSState own its JIT

The global MIPSComp::jit becomes MIPSState::jit, created and deleted by the
state it runs. JitAt() compiles with the JIT of the state it's handed, so
the dispatchers no longer go through a global. Code that is about the main
CPU by nature (the UI, the crash handler, the disassembler's symbol lookup,
the JIT harness) uses mipsr4k.jit.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Henrik RydgårdandClaude Opus 5.5 committed 2026-10-20 09:52:17 +02:00
1 parent 5a9cbf007c
commit a3c4ef8e06
15 files changed
+103 -102

No files matched your search

+2 -2
View File
@@ -72,9 +72,9 @@ static void DrawJitStats(UIContext *ctx, const Bounds &bounds) {
char statbuf[1024];
StringWriter w(statbuf, sizeof(statbuf));
if (MIPSComp::jit) {
if (mipsr4k.jit) {
MIPSComp::JitStats stats;
MIPSComp::jit->GetStats(&stats);
mipsr4k.jit->GetStats(&stats);
const double irPercent = stats.irArenaSize ? 100.0 * stats.irArenaUsed / stats.irArenaSize : 0.0;
w.F("Blocks: %d (%d valid)\n", stats.numBlocks, stats.numValidBlocks);
if (stats.codeSize) {