SPU ASMJIT: übertrampolines and spu_runtime

Use opt-out shared spu_runtime to save memory (Option: SPU Shared Runtime)
Implement "übertrampolines" for dispatching compiled blocks
Patch fixed branch points to use trampolines after check failure
This commit is contained in:
Nekotekina 2018-04-16 18:27:57 +03:00
parent 8ca33bcb94
commit 3ffafb741c
7 changed files with 329 additions and 61 deletions

View file

@ -841,6 +841,12 @@ void Emulator::Load(bool add_only)
LOG_NOTICE(LOADER, "Elf path: %s", argv[0]);
}
if (g_cfg.core.spu_debug)
{
fs::file log(Emu.GetCachePath() + "SPUJIT.log", fs::rewrite);
log.write(fmt::format("SPU JIT Log\n\nTitle: %s\nTitle ID: %s\n\n", Emu.GetTitle(), Emu.GetTitleID()));
}
ppu_load_exec(ppu_exec);
fxm::import<GSRender>(Emu.GetCallbacks().get_gs_render); // TODO: must be created in appropriate sys_rsx syscall