summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorMai <mathew1800@gmail.com>2022-06-15 03:07:47 +0200
committerGitHub <noreply@github.com>2022-06-15 03:07:47 +0200
commitc9de5474bfb7543a01337b73c33c4bf3b76e276e (patch)
tree7f9899bf3621fd4be5d7ef224a4c1f113aa2862e /src/core
parentMerge pull request #8461 from Morph1984/msvc-narrow-conv (diff)
parentcore: centralize profile scope for Dynarmic (diff)
downloadyuzu-c9de5474bfb7543a01337b73c33c4bf3b76e276e.tar
yuzu-c9de5474bfb7543a01337b73c33c4bf3b76e276e.tar.gz
yuzu-c9de5474bfb7543a01337b73c33c4bf3b76e276e.tar.bz2
yuzu-c9de5474bfb7543a01337b73c33c4bf3b76e276e.tar.lz
yuzu-c9de5474bfb7543a01337b73c33c4bf3b76e276e.tar.xz
yuzu-c9de5474bfb7543a01337b73c33c4bf3b76e276e.tar.zst
yuzu-c9de5474bfb7543a01337b73c33c4bf3b76e276e.zip
Diffstat (limited to 'src/core')
-rw-r--r--src/core/arm/arm_interface.cpp2
-rw-r--r--src/core/cpu_manager.cpp4
-rw-r--r--src/core/hle/kernel/svc.cpp3
3 files changed, 2 insertions, 7 deletions
diff --git a/src/core/arm/arm_interface.cpp b/src/core/arm/arm_interface.cpp
index 9b5a5ca57..9a285dfc6 100644
--- a/src/core/arm/arm_interface.cpp
+++ b/src/core/arm/arm_interface.cpp
@@ -107,6 +107,7 @@ void ARM_Interface::Run() {
}
// Otherwise, run the thread.
+ system.EnterDynarmicProfile();
if (current_thread->GetStepState() == StepState::StepPending) {
hr = StepJit();
@@ -116,6 +117,7 @@ void ARM_Interface::Run() {
} else {
hr = RunJit();
}
+ system.ExitDynarmicProfile();
// Notify the debugger and go to sleep if a breakpoint was hit.
if (Has(hr, breakpoint)) {
diff --git a/src/core/cpu_manager.cpp b/src/core/cpu_manager.cpp
index b4718fbbe..132fe5b60 100644
--- a/src/core/cpu_manager.cpp
+++ b/src/core/cpu_manager.cpp
@@ -113,12 +113,10 @@ void CpuManager::MultiCoreRunGuestLoop() {
while (true) {
auto* physical_core = &kernel.CurrentPhysicalCore();
- system.EnterDynarmicProfile();
while (!physical_core->IsInterrupted()) {
physical_core->Run();
physical_core = &kernel.CurrentPhysicalCore();
}
- system.ExitDynarmicProfile();
{
Kernel::KScopedDisableDispatch dd(kernel);
physical_core->ArmInterface().ClearExclusiveState();
@@ -166,12 +164,10 @@ void CpuManager::SingleCoreRunGuestLoop() {
auto& kernel = system.Kernel();
while (true) {
auto* physical_core = &kernel.CurrentPhysicalCore();
- system.EnterDynarmicProfile();
if (!physical_core->IsInterrupted()) {
physical_core->Run();
physical_core = &kernel.CurrentPhysicalCore();
}
- system.ExitDynarmicProfile();
kernel.SetIsPhantomModeForSingleCore(true);
system.CoreTiming().Advance();
kernel.SetIsPhantomModeForSingleCore(false);
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 584fa5b1c..9956f2b51 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -2982,7 +2982,6 @@ static const FunctionDef* GetSVCInfo64(u32 func_num) {
}
void Call(Core::System& system, u32 immediate) {
- system.ExitDynarmicProfile();
auto& kernel = system.Kernel();
kernel.EnterSVCProfile();
@@ -3007,8 +3006,6 @@ void Call(Core::System& system, u32 immediate) {
auto* host_context = thread->GetHostContext().get();
host_context->Rewind();
}
-
- system.EnterDynarmicProfile();
}
} // namespace Kernel::Svc