summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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() {
107 } 107 }
108 108
109 // Otherwise, run the thread. 109 // Otherwise, run the thread.
110 system.EnterDynarmicProfile();
110 if (current_thread->GetStepState() == StepState::StepPending) { 111 if (current_thread->GetStepState() == StepState::StepPending) {
111 hr = StepJit(); 112 hr = StepJit();
112 113
@@ -116,6 +117,7 @@ void ARM_Interface::Run() {
116 } else { 117 } else {
117 hr = RunJit(); 118 hr = RunJit();
118 } 119 }
120 system.ExitDynarmicProfile();
119 121
120 // Notify the debugger and go to sleep if a breakpoint was hit. 122 // Notify the debugger and go to sleep if a breakpoint was hit.
121 if (Has(hr, breakpoint)) { 123 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() {
113 113
114 while (true) { 114 while (true) {
115 auto* physical_core = &kernel.CurrentPhysicalCore(); 115 auto* physical_core = &kernel.CurrentPhysicalCore();
116 system.EnterDynarmicProfile();
117 while (!physical_core->IsInterrupted()) { 116 while (!physical_core->IsInterrupted()) {
118 physical_core->Run(); 117 physical_core->Run();
119 physical_core = &kernel.CurrentPhysicalCore(); 118 physical_core = &kernel.CurrentPhysicalCore();
120 } 119 }
121 system.ExitDynarmicProfile();
122 { 120 {
123 Kernel::KScopedDisableDispatch dd(kernel); 121 Kernel::KScopedDisableDispatch dd(kernel);
124 physical_core->ArmInterface().ClearExclusiveState(); 122 physical_core->ArmInterface().ClearExclusiveState();
@@ -166,12 +164,10 @@ void CpuManager::SingleCoreRunGuestLoop() {
166 auto& kernel = system.Kernel(); 164 auto& kernel = system.Kernel();
167 while (true) { 165 while (true) {
168 auto* physical_core = &kernel.CurrentPhysicalCore(); 166 auto* physical_core = &kernel.CurrentPhysicalCore();
169 system.EnterDynarmicProfile();
170 if (!physical_core->IsInterrupted()) { 167 if (!physical_core->IsInterrupted()) {
171 physical_core->Run(); 168 physical_core->Run();
172 physical_core = &kernel.CurrentPhysicalCore(); 169 physical_core = &kernel.CurrentPhysicalCore();
173 } 170 }
174 system.ExitDynarmicProfile();
175 kernel.SetIsPhantomModeForSingleCore(true); 171 kernel.SetIsPhantomModeForSingleCore(true);
176 system.CoreTiming().Advance(); 172 system.CoreTiming().Advance();
177 kernel.SetIsPhantomModeForSingleCore(false); 173 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) {
2982} 2982}
2983 2983
2984void Call(Core::System& system, u32 immediate) { 2984void Call(Core::System& system, u32 immediate) {
2985 system.ExitDynarmicProfile();
2986 auto& kernel = system.Kernel(); 2985 auto& kernel = system.Kernel();
2987 kernel.EnterSVCProfile(); 2986 kernel.EnterSVCProfile();
2988 2987
@@ -3007,8 +3006,6 @@ void Call(Core::System& system, u32 immediate) {
3007 auto* host_context = thread->GetHostContext().get(); 3006 auto* host_context = thread->GetHostContext().get();
3008 host_context->Rewind(); 3007 host_context->Rewind();
3009 } 3008 }
3010
3011 system.EnterDynarmicProfile();
3012} 3009}
3013 3010
3014} // namespace Kernel::Svc 3011} // namespace Kernel::Svc