Fix in block branch collides with fcall proxy generation
This commit is contained in:
parent
020534dbc8
commit
5a0f736d41
|
@ -54607,8 +54607,13 @@ void NativeCodeGenerator::RegisterFunctionCall(NativeCodeBasicBlock* block, int
|
||||||
i -= 2;
|
i -= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (i < at)
|
if (i < at)
|
||||||
{
|
{
|
||||||
|
// Check conflicting local branch
|
||||||
|
if (i > 0 && block->mIns[i - 1].mMode == ASMIM_RELATIVE && block->mIns[i - 1].mAddress > 0)
|
||||||
|
return;
|
||||||
|
|
||||||
FunctionCall* ncp = new FunctionCall();
|
FunctionCall* ncp = new FunctionCall();
|
||||||
ncp->mLinkerObject = lo;
|
ncp->mLinkerObject = lo;
|
||||||
ncp->mOffset = block->mIns[at].mAddress;
|
ncp->mOffset = block->mIns[at].mAddress;
|
||||||
|
@ -54676,6 +54681,10 @@ bool NativeCodeGenerator::MergeFunctionCall(NativeCodeBasicBlock* block, int at)
|
||||||
|
|
||||||
if (i < at)
|
if (i < at)
|
||||||
{
|
{
|
||||||
|
// Check conflicting local branch
|
||||||
|
if (i > 0 && block->mIns[i - 1].mMode == ASMIM_RELATIVE && block->mIns[i - 1].mAddress > 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
FunctionCall ncp;
|
FunctionCall ncp;
|
||||||
ncp.mLinkerObject = lo;
|
ncp.mLinkerObject = lo;
|
||||||
ncp.mOffset = block->mIns[at].mAddress;
|
ncp.mOffset = block->mIns[at].mAddress;
|
||||||
|
|
Loading…
Reference in New Issue