aboutsummaryrefslogtreecommitdiff
path: root/src/core/core_cpu.cpp
AgeCommit message (Collapse)Author
2018-10-15core_cpu: Make Cpu scheduler instances unique_ptrs instead of shared_ptrsLioncash
2018-10-15core: Make the exclusive monitor a unique_ptr instead of a shared_ptrLioncash
Like the barrier, this is owned entirely by the System and will always outlive the encompassing state, so shared ownership semantics aren't necessary here.
2018-10-15core: Make CPUBarrier a unique_ptr instead of a shared_ptrLioncash
This will always outlive the Cpu instances, since it's destroyed after we destroy the Cpu instances on shutdown, so there's no need for shared ownership semantics here.
2018-09-25core_cpu: Make arm_interface instances a std::unique_ptrLioncash
This is only exposed by reference, so we can just make it a unique pointer to get rid of the need to also use reference counting for the pointer.
2018-09-25kernel/scheduler: Take ARM_Interface instance by reference in the constructorLioncash
It doesn't make sense to allow a scheduler to be constructed around a null pointer.
2018-09-17core/core_cpu: Replace exclusive monitor include with forward declarationLioncash
We don't need to include this as a dependency within the header. A regular forward declaration will suffice here.
2018-09-15Port #4182 from Citra: "Prefix all size_t with std::"fearlessTobi
2018-08-12Merge pull request #1043 from Subv/timingbunnei
Use an approximated amortized amount of ticks when advancing timing.
2018-08-12CPU/Timing: Use an approximated amortized amount of ticks when advancing timing.Subv
We divide the number of ticks to add by the number of cores (4) to obtain a more or less rough estimate of the actual number of ticks added. This assumes that all 4 cores are doing similar work. Previously we were adding ~4 times the number of ticks, thus making the games think that time was going way too fast. This lets us bypass certain hangs in some games like Breath of the Wild. We should modify our CoreTiming to support multiple cores (both running in a single thread, and in multiple host threads).
2018-08-12CPU/HLE: Lock the HLE mutex before performing a reschedule.Subv
Another thread might be in the middle of an SVC, thus altering the state of the schedulers.
2018-08-01kernel: Move object class to its own source filesLioncash
General moving to keep kernel object types separate from the direct kernel code. Also essentially a preliminary cleanup before eliminating global kernel state in the kernel code.
2018-07-22Implement exclusive monitorMerryMage
2018-07-02Rename logging macro back to LOG_*James Rowe
2018-05-10core: Add a configuration setting for use_multi_core.bunnei
2018-05-10core: Support session close with multicore.bunnei
2018-05-10core: Implement multicore support.bunnei
2018-05-10core: Create a thread for each CPU core, keep in lock-step with a barrier.bunnei
2018-05-10core: Move common CPU core things to its own class.bunnei