summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authormitaclaw <140017135+mitaclaw@users.noreply.github.com>2024-05-05 00:48:40 -0700
committermitaclaw <140017135+mitaclaw@users.noreply.github.com>2024-07-23 14:07:02 -0700
commitae43b10eff153c0322fcc254e1f63a92a8581d2e (patch)
treef1f877551b3ed9b4baa58058f8805bf9b372ad15 /Source
parent818647d694e613c79da10854a65b823e9aea3e8b (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.cpp7
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});
}
}