Merge pull request #10089 from AdmiralCurtiss/jit-cache-valid-block-clear
PowerPC/JitCache: Clear valid_block bits for long invalidations.
This commit is contained in:
commit
8809d8eb61
|
@ -234,6 +234,16 @@ void JitBaseBlockCache::InvalidateICacheInternal(u32 physical_address, u32 addre
|
||||||
else
|
else
|
||||||
valid_block.Clear(physical_address / 32);
|
valid_block.Clear(physical_address / 32);
|
||||||
}
|
}
|
||||||
|
else if (length > 32)
|
||||||
|
{
|
||||||
|
// Even if we can't check the set for optimization, we still want to remove all fully covered
|
||||||
|
// cache lines from the valid_block set so that later calls don't try to invalidate already
|
||||||
|
// cleared regions.
|
||||||
|
const u32 covered_block_start = (physical_address + 0x1f) / 32;
|
||||||
|
const u32 covered_block_end = (physical_address + length) / 32;
|
||||||
|
for (u32 i = covered_block_start; i < covered_block_end; ++i)
|
||||||
|
valid_block.Clear(i);
|
||||||
|
}
|
||||||
|
|
||||||
if (destroy_block)
|
if (destroy_block)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue