Jit: Fix branch following.
The idea of this code was to not unroll loops, but it was completely broken. So we've unrolled all loops, but only up to the second iteration. Honestly, a better check would test if we branch to code which is already in the compiling block. But this is out of scope for now. But testing shows that this unrolling actually improve the performance. So instead of fixing this bug, this check can be dropped.
This commit is contained in:
parent
7c2d2548a8
commit
5333c17cca
|
@ -714,9 +714,7 @@ u32 PPCAnalyzer::Analyze(u32 address, CodeBlock* block, CodeBuffer* buffer, std:
|
||||||
if (inst.OPCD == 18 && block_size > 1)
|
if (inst.OPCD == 18 && block_size > 1)
|
||||||
{
|
{
|
||||||
// Always follow BX instructions.
|
// Always follow BX instructions.
|
||||||
// TODO: Loop unrolling might bloat the code size too much.
|
follow = true;
|
||||||
// Enable it carefully.
|
|
||||||
follow = destination != block->m_address;
|
|
||||||
destination = SignExt26(inst.LI << 2) + (inst.AA ? 0 : address);
|
destination = SignExt26(inst.LI << 2) + (inst.AA ? 0 : address);
|
||||||
if (inst.LK)
|
if (inst.LK)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue