summaryrefslogtreecommitdiff
path: root/Source/Core/Common/Debug/CodeTrace.cpp
diff options
context:
space:
mode:
authorAdmiral H. Curtiss <pikachu025@gmail.com>2023-01-10 04:53:40 +0100
committerAdmiral H. Curtiss <pikachu025@gmail.com>2023-01-27 15:22:45 +0100
commitbbdfb4bc14d2586c838dd6bd40684ca7b490910e (patch)
treea014d2f97deac1b49e8283042e77b2e1a56adee1 /Source/Core/Common/Debug/CodeTrace.cpp
parent41ad0490f088f4cd73a3165e55574106e84ce946 (diff)
CodeTrace: Avoid ppcState global.
Diffstat (limited to 'Source/Core/Common/Debug/CodeTrace.cpp')
-rw-r--r--Source/Core/Common/Debug/CodeTrace.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/Source/Core/Common/Debug/CodeTrace.cpp b/Source/Core/Common/Debug/CodeTrace.cpp
index 2b2694c1dd..09939bdf96 100644
--- a/Source/Core/Common/Debug/CodeTrace.cpp
+++ b/Source/Core/Common/Debug/CodeTrace.cpp
@@ -11,6 +11,7 @@
#include "Core/Debugger/PPCDebugInterface.h"
#include "Core/HW/CPU.h"
#include "Core/PowerPC/PowerPC.h"
+#include "Core/System.h"
namespace
{
@@ -56,11 +57,13 @@ void CodeTrace::SetRegTracked(const std::string& reg)
InstructionAttributes CodeTrace::GetInstructionAttributes(const TraceOutput& instruction) const
{
+ auto& system = Core::System::GetInstance();
+
// Slower process of breaking down saved instruction. Only used when stepping through code if a
// decision has to be made, otherwise used afterwards on a log file.
InstructionAttributes tmp_attributes;
tmp_attributes.instruction = instruction.instruction;
- tmp_attributes.address = PowerPC::ppcState.pc;
+ tmp_attributes.address = system.GetPPCState().pc;
std::string instr = instruction.instruction;
std::smatch match;
@@ -106,11 +109,14 @@ InstructionAttributes CodeTrace::GetInstructionAttributes(const TraceOutput& ins
TraceOutput CodeTrace::SaveCurrentInstruction() const
{
+ auto& system = Core::System::GetInstance();
+ auto& ppc_state = system.GetPPCState();
+
// Quickly save instruction and memory target for fast logging.
TraceOutput output;
- const std::string instr = PowerPC::debug_interface.Disassemble(PowerPC::ppcState.pc);
+ const std::string instr = PowerPC::debug_interface.Disassemble(ppc_state.pc);
output.instruction = instr;
- output.address = PowerPC::ppcState.pc;
+ output.address = ppc_state.pc;
if (IsInstructionLoadStore(output.instruction))
output.memory_target = PowerPC::debug_interface.GetMemoryAddressFromInstruction(instr);