summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/svc.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2020-12-03 15:32:45 -0800
committerGravatar GitHub2020-12-03 15:32:45 -0800
commit69aaad9b9684570284efcdb5921e54d0f5983838 (patch)
tree364256228dfcdfc989a597aca2a6c753b173f93a /src/core/hle/kernel/svc.cpp
parentMerge pull request #5059 from lioncash/mouse (diff)
parentkernel: scheduler: Minor cleanup to remove duplicated code. (diff)
downloadyuzu-69aaad9b9684570284efcdb5921e54d0f5983838.tar.gz
yuzu-69aaad9b9684570284efcdb5921e54d0f5983838.tar.xz
yuzu-69aaad9b9684570284efcdb5921e54d0f5983838.zip
Merge pull request #4996 from bunnei/use-4jits
Kernel: Refactor to use 4-instances of Dynarmic & various cleanups and improvements
Diffstat (limited to 'src/core/hle/kernel/svc.cpp')
-rw-r--r--src/core/hle/kernel/svc.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index e3b770d66..95d6e2b4d 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -2639,6 +2639,9 @@ void Call(Core::System& system, u32 immediate) {
2639 auto& kernel = system.Kernel(); 2639 auto& kernel = system.Kernel();
2640 kernel.EnterSVCProfile(); 2640 kernel.EnterSVCProfile();
2641 2641
2642 auto* thread = system.CurrentScheduler().GetCurrentThread();
2643 thread->SetContinuousOnSVC(true);
2644
2642 const FunctionDef* info = system.CurrentProcess()->Is64BitProcess() ? GetSVCInfo64(immediate) 2645 const FunctionDef* info = system.CurrentProcess()->Is64BitProcess() ? GetSVCInfo64(immediate)
2643 : GetSVCInfo32(immediate); 2646 : GetSVCInfo32(immediate);
2644 if (info) { 2647 if (info) {
@@ -2652,6 +2655,12 @@ void Call(Core::System& system, u32 immediate) {
2652 } 2655 }
2653 2656
2654 kernel.ExitSVCProfile(); 2657 kernel.ExitSVCProfile();
2658
2659 if (!thread->IsContinuousOnSVC()) {
2660 auto* host_context = thread->GetHostContext().get();
2661 host_context->Rewind();
2662 }
2663
2655 system.EnterDynarmicProfile(); 2664 system.EnterDynarmicProfile();
2656} 2665}
2657 2666