diff options
| author | mitaclaw <140017135+mitaclaw@users.noreply.github.com> | 2024-05-05 00:48:40 -0700 |
|---|---|---|
| committer | mitaclaw <140017135+mitaclaw@users.noreply.github.com> | 2024-07-23 14:07:02 -0700 |
| commit | ae43b10eff153c0322fcc254e1f63a92a8581d2e (patch) | |
| tree | f1f877551b3ed9b4baa58058f8805bf9b372ad15 /Source | |
| parent | 818647d694e613c79da10854a65b823e9aea3e8b (diff) | |
CachedInterpreter: Use `CodeOp::canEndBlock`
This was a bigger performance boost than I expected.
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp b/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp index 745dc9c9b3..98534ed903 100644 --- a/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp +++ b/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp @@ -344,18 +344,17 @@ bool CachedInterpreter::DoJit(u32 em_address, JitBlock* b, u32 nextPC) js.firstFPInstructionFound = true; } - const bool endblock = (op.opinfo->flags & FL_ENDBLOCK) != 0; - if (endblock) + if (op.canEndBlock) Write(WritePC, {js.compilerPC}); Write(Interpret, {interpreter, Interpreter::GetInterpreterOp(op.inst), js.compilerPC, op.inst}); if (jo.memcheck && (op.opinfo->flags & FL_LOADSTORE) != 0) Write(CheckDSI, {power_pc, js.compilerPC, js.downcountAmount}); - if (!endblock && ShouldHandleFPExceptionForInstruction(&op)) + if (!op.canEndBlock && ShouldHandleFPExceptionForInstruction(&op)) Write(CheckProgramException, {power_pc, js.compilerPC, js.downcountAmount}); if (op.branchIsIdleLoop) Write(CheckIdle, {m_system.GetCoreTiming(), js.blockStart}); - if (endblock) + if (op.canEndBlock) Write(EndBlock, {js.downcountAmount, js.numLoadStoreInst, js.numFloatingPointInst}); } } |
