summaryrefslogtreecommitdiff
path: root/src/core/core.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/core.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/core.cpp')
-rw-r--r--src/core/core.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index 76a38ea2a..58368fe3c 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -245,6 +245,7 @@ struct System::Impl {
245 } 245 }
246 AddGlueRegistrationForProcess(*app_loader, *main_process); 246 AddGlueRegistrationForProcess(*app_loader, *main_process);
247 kernel.MakeCurrentProcess(main_process.get()); 247 kernel.MakeCurrentProcess(main_process.get());
248 kernel.InitializeCores();
248 249
249 // Initialize cheat engine 250 // Initialize cheat engine
250 if (cheat_engine) { 251 if (cheat_engine) {
@@ -490,11 +491,11 @@ const TelemetrySession& System::TelemetrySession() const {
490} 491}
491 492
492ARM_Interface& System::CurrentArmInterface() { 493ARM_Interface& System::CurrentArmInterface() {
493 return impl->kernel.CurrentScheduler().GetCurrentThread()->ArmInterface(); 494 return impl->kernel.CurrentPhysicalCore().ArmInterface();
494} 495}
495 496
496const ARM_Interface& System::CurrentArmInterface() const { 497const ARM_Interface& System::CurrentArmInterface() const {
497 return impl->kernel.CurrentScheduler().GetCurrentThread()->ArmInterface(); 498 return impl->kernel.CurrentPhysicalCore().ArmInterface();
498} 499}
499 500
500std::size_t System::CurrentCoreIndex() const { 501std::size_t System::CurrentCoreIndex() const {
@@ -554,15 +555,11 @@ const Kernel::Process* System::CurrentProcess() const {
554} 555}
555 556
556ARM_Interface& System::ArmInterface(std::size_t core_index) { 557ARM_Interface& System::ArmInterface(std::size_t core_index) {
557 auto* thread = impl->kernel.Scheduler(core_index).GetCurrentThread(); 558 return impl->kernel.PhysicalCore(core_index).ArmInterface();
558 ASSERT(thread && !thread->IsHLEThread());
559 return thread->ArmInterface();
560} 559}
561 560
562const ARM_Interface& System::ArmInterface(std::size_t core_index) const { 561const ARM_Interface& System::ArmInterface(std::size_t core_index) const {
563 auto* thread = impl->kernel.Scheduler(core_index).GetCurrentThread(); 562 return impl->kernel.PhysicalCore(core_index).ArmInterface();
564 ASSERT(thread && !thread->IsHLEThread());
565 return thread->ArmInterface();
566} 563}
567 564
568ExclusiveMonitor& System::Monitor() { 565ExclusiveMonitor& System::Monitor() {