diff options
author | bunnei <bunneidev@gmail.com> | 2018-10-16 17:21:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-16 17:21:42 +0200 |
commit | 88b8383da28f05b2a30ba853b0578fe625f7dba6 (patch) | |
tree | f9224c0af9d0ddcc1e2496b638a6108077fcd198 /src/core/arm | |
parent | Merge pull request #1508 from lioncash/unique-reg (diff) | |
parent | core_cpu: Make Cpu scheduler instances unique_ptrs instead of shared_ptrs (diff) | |
download | yuzu-88b8383da28f05b2a30ba853b0578fe625f7dba6.tar yuzu-88b8383da28f05b2a30ba853b0578fe625f7dba6.tar.gz yuzu-88b8383da28f05b2a30ba853b0578fe625f7dba6.tar.bz2 yuzu-88b8383da28f05b2a30ba853b0578fe625f7dba6.tar.lz yuzu-88b8383da28f05b2a30ba853b0578fe625f7dba6.tar.xz yuzu-88b8383da28f05b2a30ba853b0578fe625f7dba6.tar.zst yuzu-88b8383da28f05b2a30ba853b0578fe625f7dba6.zip |
Diffstat (limited to 'src/core/arm')
-rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic.cpp | 7 | ||||
-rw-r--r-- | src/core/arm/dynarmic/arm_dynarmic.h | 4 |
2 files changed, 5 insertions, 6 deletions
diff --git a/src/core/arm/dynarmic/arm_dynarmic.cpp b/src/core/arm/dynarmic/arm_dynarmic.cpp index 0762321a9..4d2491870 100644 --- a/src/core/arm/dynarmic/arm_dynarmic.cpp +++ b/src/core/arm/dynarmic/arm_dynarmic.cpp @@ -144,7 +144,7 @@ std::unique_ptr<Dynarmic::A64::Jit> ARM_Dynarmic::MakeJit() const { // Multi-process state config.processor_id = core_index; - config.global_monitor = &exclusive_monitor->monitor; + config.global_monitor = &exclusive_monitor.monitor; // System registers config.tpidrro_el0 = &cb->tpidrro_el0; @@ -171,10 +171,9 @@ void ARM_Dynarmic::Step() { cb->InterpreterFallback(jit->GetPC(), 1); } -ARM_Dynarmic::ARM_Dynarmic(std::shared_ptr<ExclusiveMonitor> exclusive_monitor, - std::size_t core_index) +ARM_Dynarmic::ARM_Dynarmic(ExclusiveMonitor& exclusive_monitor, std::size_t core_index) : cb(std::make_unique<ARM_Dynarmic_Callbacks>(*this)), core_index{core_index}, - exclusive_monitor{std::dynamic_pointer_cast<DynarmicExclusiveMonitor>(exclusive_monitor)} { + exclusive_monitor{dynamic_cast<DynarmicExclusiveMonitor&>(exclusive_monitor)} { ThreadContext ctx{}; inner_unicorn.SaveContext(ctx); PageTableChanged(); diff --git a/src/core/arm/dynarmic/arm_dynarmic.h b/src/core/arm/dynarmic/arm_dynarmic.h index 4ee92ee27..512bf8ce9 100644 --- a/src/core/arm/dynarmic/arm_dynarmic.h +++ b/src/core/arm/dynarmic/arm_dynarmic.h @@ -23,7 +23,7 @@ class DynarmicExclusiveMonitor; class ARM_Dynarmic final : public ARM_Interface { public: - ARM_Dynarmic(std::shared_ptr<ExclusiveMonitor> exclusive_monitor, std::size_t core_index); + ARM_Dynarmic(ExclusiveMonitor& exclusive_monitor, std::size_t core_index); ~ARM_Dynarmic(); void MapBackingMemory(VAddr address, std::size_t size, u8* memory, @@ -62,7 +62,7 @@ private: ARM_Unicorn inner_unicorn; std::size_t core_index; - std::shared_ptr<DynarmicExclusiveMonitor> exclusive_monitor; + DynarmicExclusiveMonitor& exclusive_monitor; Memory::PageTable* current_page_table = nullptr; }; |