mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-25 23:29:44 -06:00
Merge pull request #1240 from FioraAeterna/fixdebugblocklink
Debug: fix disable block linking option
This commit is contained in:
@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
SCoreStartupParameter::SCoreStartupParameter()
|
SCoreStartupParameter::SCoreStartupParameter()
|
||||||
: bEnableDebugging(false), bAutomaticStart(false), bBootToPause(false),
|
: bEnableDebugging(false), bAutomaticStart(false), bBootToPause(false),
|
||||||
bJITNoBlockCache(false), bJITBlockLinking(true),
|
bJITNoBlockCache(false), bJITNoBlockLinking(true),
|
||||||
bJITOff(false),
|
bJITOff(false),
|
||||||
bJITLoadStoreOff(false), bJITLoadStorelXzOff(false),
|
bJITLoadStoreOff(false), bJITLoadStorelXzOff(false),
|
||||||
bJITLoadStorelwzOff(false), bJITLoadStorelbzxOff(false),
|
bJITLoadStorelwzOff(false), bJITLoadStorelbzxOff(false),
|
||||||
|
@ -123,7 +123,7 @@ struct SCoreStartupParameter
|
|||||||
int iCPUCore;
|
int iCPUCore;
|
||||||
|
|
||||||
// JIT (shared between JIT and JITIL)
|
// JIT (shared between JIT and JITIL)
|
||||||
bool bJITNoBlockCache, bJITBlockLinking;
|
bool bJITNoBlockCache, bJITNoBlockLinking;
|
||||||
bool bJITOff;
|
bool bJITOff;
|
||||||
bool bJITLoadStoreOff, bJITLoadStorelXzOff, bJITLoadStorelwzOff, bJITLoadStorelbzxOff;
|
bool bJITLoadStoreOff, bJITLoadStorelXzOff, bJITLoadStorelwzOff, bJITLoadStorelbzxOff;
|
||||||
bool bJITLoadStoreFloatingOff;
|
bool bJITLoadStoreFloatingOff;
|
||||||
|
@ -175,7 +175,7 @@ void Jit64::Init()
|
|||||||
{
|
{
|
||||||
jo.optimizeStack = true;
|
jo.optimizeStack = true;
|
||||||
jo.enableBlocklink = true;
|
jo.enableBlocklink = true;
|
||||||
if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bJITBlockLinking ||
|
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bJITNoBlockLinking ||
|
||||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bMMU)
|
SConfig::GetInstance().m_LocalCoreStartupParameter.bMMU)
|
||||||
{
|
{
|
||||||
// TODO: support block linking with MMU
|
// TODO: support block linking with MMU
|
||||||
|
@ -244,23 +244,12 @@ namespace JitILProfiler
|
|||||||
void JitIL::Init()
|
void JitIL::Init()
|
||||||
{
|
{
|
||||||
jo.optimizeStack = true;
|
jo.optimizeStack = true;
|
||||||
|
jo.enableBlocklink = true;
|
||||||
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bEnableDebugging)
|
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bJITNoBlockLinking ||
|
||||||
|
SConfig::GetInstance().m_LocalCoreStartupParameter.bMMU)
|
||||||
{
|
{
|
||||||
|
// TODO: support block linking with MMU
|
||||||
jo.enableBlocklink = false;
|
jo.enableBlocklink = false;
|
||||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bSkipIdle = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bJITBlockLinking)
|
|
||||||
{
|
|
||||||
jo.enableBlocklink = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Speed boost, but not 100% safe
|
|
||||||
jo.enableBlocklink = !SConfig::GetInstance().m_LocalCoreStartupParameter.bMMU;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
jo.fpAccurateFcmp = false;
|
jo.fpAccurateFcmp = false;
|
||||||
|
@ -397,7 +397,7 @@ void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParam
|
|||||||
interpreter->Check(_LocalCoreStartupParameter.iCPUCore == 0);
|
interpreter->Check(_LocalCoreStartupParameter.iCPUCore == 0);
|
||||||
pCoreMenu->AppendSeparator();
|
pCoreMenu->AppendSeparator();
|
||||||
|
|
||||||
pCoreMenu->Append(IDM_JITBLOCKLINKING, _("&JIT Block Linking off"),
|
pCoreMenu->Append(IDM_JITNOBLOCKLINKING, _("&JIT Block Linking off"),
|
||||||
_("Provide safer execution by not linking the JIT blocks."),
|
_("Provide safer execution by not linking the JIT blocks."),
|
||||||
wxITEM_CHECK);
|
wxITEM_CHECK);
|
||||||
|
|
||||||
@ -596,9 +596,9 @@ bool CCodeWindow::JITNoBlockCache()
|
|||||||
return GetMenuBar()->IsChecked(IDM_JITNOBLOCKCACHE);
|
return GetMenuBar()->IsChecked(IDM_JITNOBLOCKCACHE);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CCodeWindow::JITBlockLinking()
|
bool CCodeWindow::JITNoBlockLinking()
|
||||||
{
|
{
|
||||||
return GetMenuBar()->IsChecked(IDM_JITBLOCKLINKING);
|
return GetMenuBar()->IsChecked(IDM_JITNOBLOCKLINKING);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Toolbar
|
// Toolbar
|
||||||
|
@ -59,7 +59,7 @@ class CCodeWindow
|
|||||||
bool BootToPause();
|
bool BootToPause();
|
||||||
bool AutomaticStart();
|
bool AutomaticStart();
|
||||||
bool JITNoBlockCache();
|
bool JITNoBlockCache();
|
||||||
bool JITBlockLinking();
|
bool JITNoBlockLinking();
|
||||||
bool JumpToAddress(u32 address);
|
bool JumpToAddress(u32 address);
|
||||||
|
|
||||||
void Update() override;
|
void Update() override;
|
||||||
|
@ -191,7 +191,7 @@ enum
|
|||||||
// CPU Mode
|
// CPU Mode
|
||||||
IDM_INTERPRETER,
|
IDM_INTERPRETER,
|
||||||
IDM_AUTOMATICSTART, IDM_BOOTTOPAUSE,
|
IDM_AUTOMATICSTART, IDM_BOOTTOPAUSE,
|
||||||
IDM_JITNOBLOCKCACHE, IDM_JITBLOCKLINKING, // JIT
|
IDM_JITNOBLOCKCACHE, IDM_JITNOBLOCKLINKING, // JIT
|
||||||
IDM_JITOFF,
|
IDM_JITOFF,
|
||||||
IDM_JITLSOFF, IDM_JITLSLXZOFF, IDM_JITLSLWZOFF, IDM_JITLSLBZXOFF,
|
IDM_JITLSOFF, IDM_JITLSLXZOFF, IDM_JITLSLWZOFF, IDM_JITLSLBZXOFF,
|
||||||
IDM_JITLSPOFF, IDM_JITLSFOFF,
|
IDM_JITLSPOFF, IDM_JITLSFOFF,
|
||||||
|
@ -559,7 +559,7 @@ void Host_SetStartupDebuggingParameters()
|
|||||||
StartUp.bBootToPause = main_frame->g_pCodeWindow->BootToPause();
|
StartUp.bBootToPause = main_frame->g_pCodeWindow->BootToPause();
|
||||||
StartUp.bAutomaticStart = main_frame->g_pCodeWindow->AutomaticStart();
|
StartUp.bAutomaticStart = main_frame->g_pCodeWindow->AutomaticStart();
|
||||||
StartUp.bJITNoBlockCache = main_frame->g_pCodeWindow->JITNoBlockCache();
|
StartUp.bJITNoBlockCache = main_frame->g_pCodeWindow->JITNoBlockCache();
|
||||||
StartUp.bJITBlockLinking = main_frame->g_pCodeWindow->JITBlockLinking();
|
StartUp.bJITNoBlockLinking = main_frame->g_pCodeWindow->JITNoBlockLinking();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user