summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2020-01-30 18:52:23 -0500
committerGravatar Lioncash2020-01-30 18:52:25 -0500
commit472319e573d7151e790c08aa9fae6dcaf6bf1932 (patch)
tree74b9f22b5574f39fbabaa767a2452ded7a15cc9f /src
parentMerge pull request #3353 from FernandoS27/aries (diff)
downloadyuzu-472319e573d7151e790c08aa9fae6dcaf6bf1932.tar.gz
yuzu-472319e573d7151e790c08aa9fae6dcaf6bf1932.tar.xz
yuzu-472319e573d7151e790c08aa9fae6dcaf6bf1932.zip
core/arm: Remove usage of global GetCurrentThread()
Now both CPU backends go through their referenced system instance to obtain the current thread.
Diffstat (limited to 'src')
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic.cpp3
-rw-r--r--src/core/arm/unicorn/arm_unicorn.cpp3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic.cpp b/src/core/arm/dynarmic/arm_dynarmic.cpp
index f468e57e4..791640a3a 100644
--- a/src/core/arm/dynarmic/arm_dynarmic.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic.cpp
@@ -15,6 +15,7 @@
15#include "core/core_timing_util.h" 15#include "core/core_timing_util.h"
16#include "core/gdbstub/gdbstub.h" 16#include "core/gdbstub/gdbstub.h"
17#include "core/hle/kernel/process.h" 17#include "core/hle/kernel/process.h"
18#include "core/hle/kernel/scheduler.h"
18#include "core/hle/kernel/svc.h" 19#include "core/hle/kernel/svc.h"
19#include "core/hle/kernel/vm_manager.h" 20#include "core/hle/kernel/vm_manager.h"
20#include "core/memory.h" 21#include "core/memory.h"
@@ -87,7 +88,7 @@ public:
87 if (GDBStub::IsServerEnabled()) { 88 if (GDBStub::IsServerEnabled()) {
88 parent.jit->HaltExecution(); 89 parent.jit->HaltExecution();
89 parent.SetPC(pc); 90 parent.SetPC(pc);
90 Kernel::Thread* thread = Kernel::GetCurrentThread(); 91 Kernel::Thread* const thread = parent.system.CurrentScheduler().GetCurrentThread();
91 parent.SaveContext(thread->GetContext()); 92 parent.SaveContext(thread->GetContext());
92 GDBStub::Break(); 93 GDBStub::Break();
93 GDBStub::SendTrap(thread, 5); 94 GDBStub::SendTrap(thread, 5);
diff --git a/src/core/arm/unicorn/arm_unicorn.cpp b/src/core/arm/unicorn/arm_unicorn.cpp
index 48182c99a..f99ad5802 100644
--- a/src/core/arm/unicorn/arm_unicorn.cpp
+++ b/src/core/arm/unicorn/arm_unicorn.cpp
@@ -9,6 +9,7 @@
9#include "core/arm/unicorn/arm_unicorn.h" 9#include "core/arm/unicorn/arm_unicorn.h"
10#include "core/core.h" 10#include "core/core.h"
11#include "core/core_timing.h" 11#include "core/core_timing.h"
12#include "core/hle/kernel/scheduler.h"
12#include "core/hle/kernel/svc.h" 13#include "core/hle/kernel/svc.h"
13 14
14namespace Core { 15namespace Core {
@@ -177,7 +178,7 @@ void ARM_Unicorn::ExecuteInstructions(std::size_t num_instructions) {
177 uc_reg_write(uc, UC_ARM64_REG_PC, &last_bkpt.address); 178 uc_reg_write(uc, UC_ARM64_REG_PC, &last_bkpt.address);
178 } 179 }
179 180
180 Kernel::Thread* thread = Kernel::GetCurrentThread(); 181 Kernel::Thread* const thread = system.CurrentScheduler().GetCurrentThread();
181 SaveContext(thread->GetContext()); 182 SaveContext(thread->GetContext());
182 if (last_bkpt_hit || GDBStub::IsMemoryBreak() || GDBStub::GetCpuStepFlag()) { 183 if (last_bkpt_hit || GDBStub::IsMemoryBreak() || GDBStub::GetCpuStepFlag()) {
183 last_bkpt_hit = false; 184 last_bkpt_hit = false;