mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-16 07:50:28 +02:00
Clear jit cache when changing breakpoints.
For now, only when paused. I don't think clearing the cache while running is an awesome idea.
This commit is contained in:
1 parent
a9293c8923
commit
beac991a9e
8 files changed
+38
-3
No files matched your search
@@ -19,6 +19,7 @@
|
||||
#include "Breakpoints.h"
|
||||
#include "SymbolMap.h"
|
||||
#include "FixedSizeUnorderedSet.h"
|
||||
#include "../MIPS/JitCommon/JitCommon.h"
|
||||
#include <cstdio>
|
||||
|
||||
#define MAX_BREAKPOINTS 16
|
||||
@@ -73,6 +74,7 @@ void CBreakPoints::RemoveBreakPoint(u32 _iAddress)
|
||||
if (m_iBreakPoints[i].iAddress == _iAddress)
|
||||
{
|
||||
m_iBreakPoints.remove(m_iBreakPoints[i]);
|
||||
InvalidateJit(_iAddress);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -81,6 +83,7 @@ void CBreakPoints::RemoveBreakPoint(u32 _iAddress)
|
||||
void CBreakPoints::ClearAllBreakPoints()
|
||||
{
|
||||
m_iBreakPoints.clear();
|
||||
InvalidateJit();
|
||||
}
|
||||
|
||||
MemCheck *CBreakPoints::GetMemCheck(u32 address)
|
||||
@@ -123,5 +126,20 @@ void CBreakPoints::AddBreakPoint(u32 _iAddress, bool temp)
|
||||
pt.iAddress = _iAddress;
|
||||
|
||||
m_iBreakPoints.insert(pt);
|
||||
InvalidateJit(_iAddress);
|
||||
}
|
||||
}
|
||||
|
||||
void CBreakPoints::InvalidateJit(u32 _iAddress)
|
||||
{
|
||||
// Don't want to clear cache while running, I think?
|
||||
if (MIPSComp::jit && coreState == CORE_STEPPING)
|
||||
MIPSComp::jit->ClearCacheAt(_iAddress);
|
||||
}
|
||||
|
||||
void CBreakPoints::InvalidateJit()
|
||||
{
|
||||
// Don't want to clear cache while running, I think?
|
||||
if (MIPSComp::jit && coreState == CORE_STEPPING)
|
||||
MIPSComp::jit->ClearCache();
|
||||
}
|
||||
Reference in new issue
Block a user