CPU/Recompiler: Implement simple block linking
This commit is contained in:
@ -36,13 +36,27 @@ private:
|
||||
|
||||
void LogCurrentState();
|
||||
|
||||
/// Returns the block key for the current execution state.
|
||||
CodeBlockKey GetNextBlockKey() const;
|
||||
|
||||
/// Looks up the block in the cache if it's already been compiled.
|
||||
CodeBlock* LookupBlock(CodeBlockKey key);
|
||||
|
||||
/// Can the current block execute? This will re-validate the block if necessary.
|
||||
/// The block can also be flushed if recompilation failed, so ignore the pointer if false is returned.
|
||||
bool RevalidateBlock(CodeBlock* block);
|
||||
|
||||
bool CompileBlock(CodeBlock* block);
|
||||
void FlushBlock(CodeBlock* block);
|
||||
void AddBlockToPageMap(CodeBlock* block);
|
||||
void RemoveBlockFromPageMap(CodeBlock* block);
|
||||
|
||||
/// Link block from to to.
|
||||
void LinkBlock(CodeBlock* from, CodeBlock* to);
|
||||
|
||||
/// Unlink all blocks which point to this block, and any that this block links to.
|
||||
void UnlinkBlock(CodeBlock* block);
|
||||
|
||||
void InterpretCachedBlock(const CodeBlock& block);
|
||||
void InterpretUncachedBlock();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user