If recompiler block hash table points to wrong block, then walk tree to find correct block instead of recompiling. Speedups of 10-20% on games that were seeing hash aliasing, eg Quake III, System Shock 2, UltraHLE etc

This commit is contained in:
SarahW 2016-04-06 20:48:36 +01:00
commit 36bb949126
4 changed files with 169 additions and 2 deletions

View file

@ -126,6 +126,8 @@ static void delete_block(codeblock_t *block)
fatal("Deleting deleted block\n");
block->pc = 0;
codeblock_tree_delete(block);
if (block->prev)
{
block->prev->next = block->next;
@ -425,6 +427,8 @@ void codegen_block_end()
// pclog("End block %i\n", block_num);
recomp_page = -1;
codeblock_tree_add(block);
}
void codegen_flush()