Merge pull request #2888 from degasus/jit64
Jit64: Faster linking of continuous blocks
This commit is contained in:
commit
73067b1ef1
|
@ -324,9 +324,20 @@ using namespace Gen;
|
|||
{
|
||||
XEmitter emit(location);
|
||||
if (*location == 0xE8)
|
||||
{
|
||||
emit.CALL(address);
|
||||
}
|
||||
else
|
||||
emit.JMP(address, true);
|
||||
{
|
||||
// If we're going to link with the next block, there is no need
|
||||
// to emit JMP. So just NOP out the gap to the next block.
|
||||
// Support up to 3 additional bytes because of alignment.
|
||||
s64 offset = address - emit.GetCodePtr();
|
||||
if (offset > 0 && offset <= 5 + 3)
|
||||
emit.NOP(offset);
|
||||
else
|
||||
emit.JMP(address, true);
|
||||
}
|
||||
}
|
||||
|
||||
void JitBlockCache::WriteDestroyBlock(const u8* location, u32 address)
|
||||
|
|
Loading…
Reference in New Issue