Merge pull request #4203 from aldelaro5/free-memChecks-debug-builds
Move Memchecks support out of debug only builds
This commit is contained in:
commit
a15b3fda6e
|
@ -137,12 +137,12 @@ void PPCDebugInterface::ClearAllMemChecks()
|
|||
|
||||
bool PPCDebugInterface::IsMemCheck(unsigned int address)
|
||||
{
|
||||
return (Memory::AreMemoryBreakpointsActivated() && PowerPC::memchecks.GetMemCheck(address));
|
||||
return (PowerPC::memchecks.HasAny() && PowerPC::memchecks.GetMemCheck(address));
|
||||
}
|
||||
|
||||
void PPCDebugInterface::ToggleMemCheck(unsigned int address)
|
||||
{
|
||||
if (Memory::AreMemoryBreakpointsActivated() && !PowerPC::memchecks.GetMemCheck(address))
|
||||
if (PowerPC::memchecks.HasAny() && !PowerPC::memchecks.GetMemCheck(address))
|
||||
{
|
||||
// Add Memory Check
|
||||
TMemCheck MemCheck;
|
||||
|
|
|
@ -88,9 +88,7 @@ void Run()
|
|||
// If watchpoints are enabled, any instruction could be a breakpoint.
|
||||
if (PowerPC::GetMode() != PowerPC::MODE_INTERPRETER)
|
||||
{
|
||||
#ifndef ENABLE_MEM_CHECK
|
||||
if (PowerPC::breakpoints.IsAddressBreakPoint(PC))
|
||||
#endif
|
||||
if (PowerPC::breakpoints.IsAddressBreakPoint(PC) || PowerPC::memchecks.HasAny())
|
||||
{
|
||||
PowerPC::CoreMode old_mode = PowerPC::GetMode();
|
||||
PowerPC::SetMode(PowerPC::MODE_INTERPRETER);
|
||||
|
|
|
@ -316,15 +316,6 @@ void Clear()
|
|||
memset(m_pEXRAM, 0, EXRAM_SIZE);
|
||||
}
|
||||
|
||||
bool AreMemoryBreakpointsActivated()
|
||||
{
|
||||
#ifdef ENABLE_MEM_CHECK
|
||||
return true;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline u8* GetPointerForRange(u32 address, size_t size)
|
||||
{
|
||||
// Make sure we don't have a range spanning 2 separate banks
|
||||
|
|
|
@ -11,11 +11,6 @@
|
|||
#include "Common/CommonTypes.h"
|
||||
#include "Core/PowerPC/PowerPC.h"
|
||||
|
||||
// Enable memory checks in the Debug/DebugFast builds, but NOT in release
|
||||
#if defined(_DEBUG) || defined(DEBUGFAST)
|
||||
#define ENABLE_MEM_CHECK
|
||||
#endif
|
||||
|
||||
// Global declarations
|
||||
class PointerWrap;
|
||||
namespace MMIO
|
||||
|
@ -72,7 +67,6 @@ void DoState(PointerWrap& p);
|
|||
void UpdateLogicalMemory(const PowerPC::BatTable& dbat_table);
|
||||
|
||||
void Clear();
|
||||
bool AreMemoryBreakpointsActivated();
|
||||
|
||||
// Routines to access physically addressed memory, designed for use by
|
||||
// emulated hardware outside the CPU. Use "Device_" prefix.
|
||||
|
|
|
@ -412,7 +412,8 @@ u32 HostRead_Instruction(const u32 address)
|
|||
|
||||
static __forceinline void Memcheck(u32 address, u32 var, bool write, int size)
|
||||
{
|
||||
#ifdef ENABLE_MEM_CHECK
|
||||
if (PowerPC::memchecks.HasAny())
|
||||
{
|
||||
TMemCheck* mc = PowerPC::memchecks.GetMemCheck(address);
|
||||
if (mc)
|
||||
{
|
||||
|
@ -436,7 +437,7 @@ static __forceinline void Memcheck(u32 address, u32 var, bool write, int size)
|
|||
PowerPC::ppcState.Exceptions |= EXCEPTION_DSI | EXCEPTION_FAKE_MEMCHECK_HIT;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
u8 Read_U8(const u32 address)
|
||||
|
@ -604,9 +605,8 @@ std::string HostGetString(u32 address, size_t size)
|
|||
|
||||
bool IsOptimizableRAMAddress(const u32 address)
|
||||
{
|
||||
#ifdef ENABLE_MEM_CHECK
|
||||
if (PowerPC::memchecks.HasAny())
|
||||
return false;
|
||||
#endif
|
||||
|
||||
if (!UReg_MSR(MSR).DR)
|
||||
return false;
|
||||
|
@ -745,9 +745,8 @@ void ClearCacheLine(u32 address)
|
|||
|
||||
u32 IsOptimizableMMIOAccess(u32 address, u32 accessSize)
|
||||
{
|
||||
#ifdef ENABLE_MEM_CHECK
|
||||
if (PowerPC::memchecks.HasAny())
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
if (!UReg_MSR(MSR).DR)
|
||||
return 0;
|
||||
|
@ -768,9 +767,8 @@ u32 IsOptimizableMMIOAccess(u32 address, u32 accessSize)
|
|||
|
||||
bool IsOptimizableGatherPipeWrite(u32 address)
|
||||
{
|
||||
#ifdef ENABLE_MEM_CHECK
|
||||
if (PowerPC::memchecks.HasAny())
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
if (!UReg_MSR(MSR).DR)
|
||||
return 0;
|
||||
|
|
|
@ -402,12 +402,10 @@ void CheckExceptions()
|
|||
INFO_LOG(POWERPC, "EXCEPTION_FPU_UNAVAILABLE");
|
||||
ppcState.Exceptions &= ~EXCEPTION_FPU_UNAVAILABLE;
|
||||
}
|
||||
#ifdef ENABLE_MEM_CHECK
|
||||
else if (exceptions & EXCEPTION_FAKE_MEMCHECK_HIT)
|
||||
{
|
||||
ppcState.Exceptions &= ~EXCEPTION_DSI & ~EXCEPTION_FAKE_MEMCHECK_HIT;
|
||||
}
|
||||
#endif
|
||||
else if (exceptions & EXCEPTION_DSI)
|
||||
{
|
||||
SRR0 = PC;
|
||||
|
|
|
@ -47,12 +47,8 @@ public:
|
|||
AddTool(ID_ADDBP, "+BP", m_Bitmaps[Toolbar_Add_BP]);
|
||||
Bind(wxEVT_TOOL, &CBreakPointWindow::OnAddBreakPoint, parent, ID_ADDBP);
|
||||
|
||||
// Add memory breakpoints if you can use them
|
||||
if (Memory::AreMemoryBreakpointsActivated())
|
||||
{
|
||||
AddTool(ID_ADDMC, "+MC", m_Bitmaps[Toolbar_Add_MC]);
|
||||
Bind(wxEVT_TOOL, &CBreakPointWindow::OnAddMemoryCheck, parent, ID_ADDMC);
|
||||
}
|
||||
|
||||
AddTool(ID_LOAD, _("Load"), m_Bitmaps[Toolbar_Delete]);
|
||||
Bind(wxEVT_TOOL, &CBreakPointWindow::Event_LoadAll, parent, ID_LOAD);
|
||||
|
|
|
@ -261,9 +261,7 @@ void CWatchView::OnMouseDownR(wxGridEvent& event)
|
|||
|
||||
if (row != 0 && row != (int)(PowerPC::watches.GetWatches().size() + 1) && (col == 1 || col == 2))
|
||||
{
|
||||
#ifdef ENABLE_MEM_CHECK
|
||||
menu.Append(IDM_ADDMEMCHECK, _("Add memory &breakpoint"));
|
||||
#endif
|
||||
menu.Append(IDM_VIEWMEMORY, _("View &memory"));
|
||||
}
|
||||
PopupMenu(&menu);
|
||||
|
|
Loading…
Reference in New Issue