PowerPC/Jit: Create fastmem arena on init.

This commit is contained in:
degasus 2019-11-27 11:01:56 +01:00
parent ccbadf6e72
commit c6019f9814
5 changed files with 8 additions and 4 deletions

View File

@ -216,9 +216,6 @@ void Init()
}
}
// TODO: Move this to the Jit
InitFastmemArena();
if (wii)
mmio_mapping = InitMMIOWii();
else

View File

@ -333,6 +333,7 @@ void Jit64::Init()
InitializeInstructionTables();
EnableBlockLink();
jo.fastmem_arena = SConfig::GetInstance().bFastmem && Memory::InitFastmemArena();
jo.optimizeGatherPipe = true;
jo.accurateSinglePrecision = true;
UpdateMemoryOptions();
@ -393,6 +394,8 @@ void Jit64::Shutdown()
FreeStack();
FreeCodeSpace();
Memory::ShutdownFastmemArena();
blocks.Shutdown();
m_far_code.Shutdown();
m_const_pool.Shutdown();

View File

@ -49,6 +49,8 @@ void JitArm64::Init()
size_t child_code_size = SConfig::GetInstance().bMMU ? FARCODE_SIZE_MMU : FARCODE_SIZE;
AllocCodeSpace(CODE_SIZE + child_code_size);
AddChildCodeSpace(&farcode, child_code_size);
jo.fastmem_arena = SConfig::GetInstance().bFastmem && Memory::InitFastmemArena();
jo.enableBlocklink = true;
jo.optimizeGatherPipe = true;
UpdateMemoryOptions();
@ -133,6 +135,7 @@ void JitArm64::ClearCache()
void JitArm64::Shutdown()
{
Memory::ShutdownFastmemArena();
FreeCodeSpace();
blocks.Shutdown();
FreeStack();

View File

@ -45,6 +45,6 @@ bool JitBase::CanMergeNextInstructions(int count) const
void JitBase::UpdateMemoryOptions()
{
bool any_watchpoints = PowerPC::memchecks.HasAny();
jo.fastmem = SConfig::GetInstance().bFastmem && (MSR.DR || !any_watchpoints);
jo.fastmem = SConfig::GetInstance().bFastmem && jo.fastmem_arena && (MSR.DR || !any_watchpoints);
jo.memcheck = SConfig::GetInstance().bMMU || any_watchpoints;
}

View File

@ -48,6 +48,7 @@ protected:
bool optimizeGatherPipe;
bool accurateSinglePrecision;
bool fastmem;
bool fastmem_arena;
bool memcheck;
bool profile_blocks;
};