summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2019-12-06 20:00:23 -0500
committerGitHub <noreply@github.com>2019-12-06 20:00:23 -0500
commit4bbb22a477d72cc5bcb08fbacce7166ced1907df (patch)
tree210de0776a29ef4e514a4843198d98a958a59235 /src
parentd49ed4a421f7b4a7649c91f136108aa24ebebd4f (diff)
parent40cd4df5842e90e2e946bc30a80d15e897288a52 (diff)
Merge pull request #3195 from FernandoS27/clear-exclusive
CpuCore: Clear exclusive state after doing a run in dynarmic.
Diffstat (limited to 'src')
-rw-r--r--src/core/core_cpu.cpp2
-rw-r--r--src/core/hle/kernel/scheduler.cpp1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/core/core_cpu.cpp b/src/core/core_cpu.cpp
index cf3fe0b0b..630cd4feb 100644
--- a/src/core/core_cpu.cpp
+++ b/src/core/core_cpu.cpp
@@ -96,6 +96,8 @@ void Cpu::RunLoop(bool tight_loop) {
} else {
arm_interface->Step();
}
+ // We are stopping a run, exclusive state must be cleared
+ arm_interface->ClearExclusiveState();
}
core_timing.Advance();
diff --git a/src/core/hle/kernel/scheduler.cpp b/src/core/hle/kernel/scheduler.cpp
index 3f5192087..d36fcd7d9 100644
--- a/src/core/hle/kernel/scheduler.cpp
+++ b/src/core/hle/kernel/scheduler.cpp
@@ -458,7 +458,6 @@ void Scheduler::SwitchContext() {
cpu_core.LoadContext(new_thread->GetContext());
cpu_core.SetTlsAddress(new_thread->GetTLSAddress());
cpu_core.SetTPIDR_EL0(new_thread->GetTPIDR_EL0());
- cpu_core.ClearExclusiveState();
} else {
current_thread = nullptr;
// Note: We do not reset the current process and current page table when idling because