summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/DirectoryBlob.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2023-11-04 17:48:57 +0100
committerJosJuice <josjuice@gmail.com>2026-05-12 14:38:53 +0200
commit0f72b69dc7a9e48d3e29f6ff28a032b91c23e0f6 (patch)
treee862f2abb3f8591f771b13974be165db50a4add4 /Source/Core/DiscIO/DirectoryBlob.cpp
parent34311f5fa255c5f5737e6775d026eb02279aecaf (diff)
PPCAnalyst: Split "in use" analysis into reads and writes
If the last write to a register comes before the last read of it, we can write the register to ppcState after the last write instead of after the last read. This will hopefully help spread out m_ppc_state writes across a code block, improving pipelining. Also, if there's a conditional branch that's after the last write but before the last read, instead of needing to emit one m_ppc_state write on each side of the branch, we now only need to emit one m_ppc_state write. A note about the changes made to stmw and mfcr: These instructions don't write to any GPRs or CRs respectively – they only read from them. With this commit, there are no longer any cases where registers get written back to m_ppc_state after an instruction that just reads from them, so we can get rid of all STP logic from these two instructions. lmw still needs its STP logic, since that one does write to registers.
Diffstat (limited to 'Source/Core/DiscIO/DirectoryBlob.cpp')
0 files changed, 0 insertions, 0 deletions