JitArm64: Implement leaf inlining.

There is no BLR stack, so this is quite trivial.
This commit is contained in:
degasus 2017-01-22 20:40:17 +01:00
parent f31b25fe39
commit 4855764345
2 changed files with 9 additions and 3 deletions

View File

@ -55,6 +55,7 @@ void JitArm64::Init()
code_block.m_fpa = &js.fpa;
analyzer.SetOption(PPCAnalyst::PPCAnalyzer::OPTION_CONDITIONAL_CONTINUE);
analyzer.SetOption(PPCAnalyst::PPCAnalyzer::OPTION_CARRY_MERGE);
analyzer.SetOption(PPCAnalyst::PPCAnalyzer::OPTION_BRANCH_FOLLOW);
m_supports_cycle_counter = HasCycleCounters();
}

View File

@ -76,9 +76,6 @@ void JitArm64::bx(UGeckoInstruction inst)
INSTRUCTION_START
JITDISABLE(bJITBranchOff);
gpr.Flush(FlushMode::FLUSH_ALL);
fpr.Flush(FlushMode::FLUSH_ALL);
u32 destination;
if (inst.AA)
destination = SignExt26(inst.LI << 2);
@ -93,6 +90,14 @@ void JitArm64::bx(UGeckoInstruction inst)
gpr.Unlock(WA);
}
if (!js.isLastInstruction)
{
return;
}
gpr.Flush(FlushMode::FLUSH_ALL);
fpr.Flush(FlushMode::FLUSH_ALL);
if (destination == js.compilerPC)
{
// make idle loops go faster