summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/svc.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2020-11-13 11:11:12 -0800
committerGravatar bunnei2020-11-29 01:31:51 -0800
commit7b642c77811dc3887756f5abac5a9710564b098e (patch)
tree09c9d764734db56896f77d986afa6ccd5d2c745d /src/core/hle/kernel/svc.cpp
parentMerge pull request #4998 from Morph1984/bioshock-patch (diff)
downloadyuzu-7b642c77811dc3887756f5abac5a9710564b098e.tar.gz
yuzu-7b642c77811dc3887756f5abac5a9710564b098e.tar.xz
yuzu-7b642c77811dc3887756f5abac5a9710564b098e.zip
hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.
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