diff options
Diffstat (limited to 'Source/Core/Common/Debug/CodeTrace.cpp')
| -rw-r--r-- | Source/Core/Common/Debug/CodeTrace.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/Source/Core/Common/Debug/CodeTrace.cpp b/Source/Core/Common/Debug/CodeTrace.cpp index 09939bdf96..65b7826770 100644 --- a/Source/Core/Common/Debug/CodeTrace.cpp +++ b/Source/Core/Common/Debug/CodeTrace.cpp @@ -48,6 +48,21 @@ u32 GetMemoryTargetSize(std::string_view instr) return 4; } + +bool CompareMemoryTargetToTracked(const std::string& instr, const u32 mem_target, + const std::set<u32>& mem_tracked) +{ + // This function is hit often and should be optimized. + auto it_lower = std::lower_bound(mem_tracked.begin(), mem_tracked.end(), mem_target); + + if (it_lower == mem_tracked.end()) + return false; + else if (*it_lower == mem_target) + return true; + + // If the base value doesn't hit, still need to check if longer values overlap. + return *it_lower < mem_target + GetMemoryTargetSize(instr); +} } // namespace void CodeTrace::SetRegTracked(const std::string& reg) @@ -124,21 +139,6 @@ TraceOutput CodeTrace::SaveCurrentInstruction() const return output; } -bool CompareMemoryTargetToTracked(const std::string& instr, const u32 mem_target, - const std::set<u32>& mem_tracked) -{ - // This function is hit often and should be optimized. - auto it_lower = std::lower_bound(mem_tracked.begin(), mem_tracked.end(), mem_target); - - if (it_lower == mem_tracked.end()) - return false; - else if (*it_lower == mem_target) - return true; - - // If the base value doesn't hit, still need to check if longer values overlap. - return *it_lower < mem_target + GetMemoryTargetSize(instr); -} - AutoStepResults CodeTrace::AutoStepping(bool continue_previous, AutoStop stop_on) { AutoStepResults results; |
