diff --git a/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp b/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp index 632fbb23f1..8fbed42f06 100644 --- a/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp +++ b/Source/Core/Core/PowerPC/CachedInterpreter/CachedInterpreter.cpp @@ -82,7 +82,7 @@ CachedInterpreter::~CachedInterpreter() = default; void CachedInterpreter::Init() { - RefreshConfig(InitFastmemArena::No); + RefreshConfig(); m_code.reserve(CODE_SIZE / sizeof(Instruction)); @@ -384,5 +384,5 @@ void CachedInterpreter::ClearCache() { m_code.clear(); m_block_cache.Clear(); - RefreshConfig(InitFastmemArena::No); + RefreshConfig(); } diff --git a/Source/Core/Core/PowerPC/Jit64/Jit.cpp b/Source/Core/Core/PowerPC/Jit64/Jit.cpp index 6dbb998d3a..fa96bd4b20 100644 --- a/Source/Core/Core/PowerPC/Jit64/Jit.cpp +++ b/Source/Core/Core/PowerPC/Jit64/Jit.cpp @@ -251,7 +251,10 @@ bool Jit64::BackPatch(SContext* ctx) void Jit64::Init() { - RefreshConfig(InitFastmemArena::Yes); + auto& memory = m_system.GetMemory(); + jo.fastmem_arena = memory.InitFastmemArena(); + + RefreshConfig(); EnableBlockLink(); @@ -304,7 +307,7 @@ void Jit64::ClearCache() m_const_pool.Clear(); ClearCodeSpace(); Clear(); - RefreshConfig(InitFastmemArena::No); + RefreshConfig(); asm_routines.Regenerate(); ResetFreeMemoryRanges(); } diff --git a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp index efc24f988a..4c927ed427 100644 --- a/Source/Core/Core/PowerPC/JitArm64/Jit.cpp +++ b/Source/Core/Core/PowerPC/JitArm64/Jit.cpp @@ -47,7 +47,10 @@ JitArm64::~JitArm64() = default; void JitArm64::Init() { - RefreshConfig(InitFastmemArena::Yes); + auto& memory = m_system.GetMemory(); + jo.fastmem_arena = memory.InitFastmemArena(); + + RefreshConfig(); const size_t child_code_size = jo.memcheck ? FARCODE_SIZE_MMU : FARCODE_SIZE; AllocCodeSpace(CODE_SIZE + child_code_size); @@ -155,7 +158,7 @@ void JitArm64::ClearCache() const Common::ScopedJITPageWriteAndNoExecute enable_jit_page_writes; ClearCodeSpace(); m_far_code.ClearCodeSpace(); - RefreshConfig(InitFastmemArena::No); + RefreshConfig(); GenerateAsm(); diff --git a/Source/Core/Core/PowerPC/JitCommon/JitBase.cpp b/Source/Core/Core/PowerPC/JitCommon/JitBase.cpp index 88d28ea8ac..bcdafd9725 100644 --- a/Source/Core/Core/PowerPC/JitCommon/JitBase.cpp +++ b/Source/Core/Core/PowerPC/JitCommon/JitBase.cpp @@ -115,7 +115,7 @@ bool JitBase::DoesConfigNeedRefresh() }); } -void JitBase::RefreshConfig(InitFastmemArena init_fastmem_arena) +void JitBase::RefreshConfig() { for (const auto& [member, config_info] : JIT_SETTINGS) this->*member = Config::Get(*config_info); @@ -132,12 +132,6 @@ void JitBase::RefreshConfig(InitFastmemArena init_fastmem_arena) analyzer.SetFloatExceptionsEnabled(m_enable_float_exceptions); analyzer.SetDivByZeroExceptionsEnabled(m_enable_div_by_zero_exceptions); - if (init_fastmem_arena != InitFastmemArena::No) - { - auto& memory = m_system.GetMemory(); - jo.fastmem_arena = m_fastmem_enabled && memory.InitFastmemArena(); - } - bool any_watchpoints = m_system.GetPowerPC().GetMemChecks().HasAny(); jo.fastmem = m_fastmem_enabled && jo.fastmem_arena && (m_ppc_state.msr.DR || !any_watchpoints) && EMM::IsExceptionHandlerSupported(); diff --git a/Source/Core/Core/PowerPC/JitCommon/JitBase.h b/Source/Core/Core/PowerPC/JitCommon/JitBase.h index f96c068b98..6c95559438 100644 --- a/Source/Core/Core/PowerPC/JitCommon/JitBase.h +++ b/Source/Core/Core/PowerPC/JitCommon/JitBase.h @@ -163,14 +163,8 @@ protected: static const std::array*>, 22> JIT_SETTINGS; - enum class InitFastmemArena - { - No, - Yes, - }; - bool DoesConfigNeedRefresh(); - void RefreshConfig(InitFastmemArena init_fastmem_arena); + void RefreshConfig(); void InitBLROptimization(); void ProtectStack();