Add EOB translation gate to fix blocks that are too big
This fixes a couple of games only (AFAICS)
This commit is contained in:
parent
3cab8596b8
commit
b7472eedf1
|
@ -3157,14 +3157,9 @@ s32 translate_block_arm(u32 pc, translation_region_type
|
||||||
generate_branch_patch_conditional(backpatch_address, translation_ptr);
|
generate_branch_patch_conditional(backpatch_address, translation_ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i = 0; i < translation_gate_targets; i++)
|
/* Unconditionally generate translation targets. In case we hit one or
|
||||||
{
|
in the unlikely case that block was too big (and not finalized) */
|
||||||
if(pc == translation_gate_target_pc[i])
|
generate_translation_gate(arm);
|
||||||
{
|
|
||||||
generate_translation_gate(arm);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(i = 0; i < block_exit_position; i++)
|
for(i = 0; i < block_exit_position; i++)
|
||||||
{
|
{
|
||||||
|
@ -3346,14 +3341,10 @@ s32 translate_block_thumb(u32 pc, translation_region_type
|
||||||
generate_cycle_update();
|
generate_cycle_update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(i = 0; i < translation_gate_targets; i++)
|
|
||||||
{
|
/* Unconditionally generate translation targets. In case we hit one or
|
||||||
if(pc == translation_gate_target_pc[i])
|
in the unlikely case that block was too big (and not finalized) */
|
||||||
{
|
generate_translation_gate(thumb);
|
||||||
generate_translation_gate(thumb);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for(i = 0; i < block_exit_position; i++)
|
for(i = 0; i < block_exit_position; i++)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue