aboutsummaryrefslogtreecommitdiff
path: root/src/core/arm
AgeCommit message (Collapse)Author
2021-03-24arm_dynarmic: Always have a 'valid' jit instanceMerryMage
2021-03-21core: arm_dynarmic: Ensure JIT state is saved/restored on page table changes.bunnei
- We re-create the JIT here without preserving any state.
2021-02-01arm_dynarmic_32: Print out CPSR.T on exceptionMerryMage
2021-01-28arm: dynarmic: Reintroduce JIT checks on SaveContext/LoadContext.bunnei
2021-01-28core: arm: Remove unnecessary JIT checks.bunnei
2021-01-28arm: arm_dynarmic: Skip calls when JIT is invalid.bunnei
- This can happen if called from an idle or suspension thread.
2021-01-11core: arm: arm_interface: Fix shadowing errors.bunnei
2021-01-08core: Silence unhandled enum in switch warningsReinUsesLisp
2021-01-02dynarmic: Add Unsafe_InaccurateNaN optimizationMerryMage
2020-12-29core/memory: Read and write page table atomicallyReinUsesLisp
Squash attributes into the pointer's integer, making them an uintptr_t pair containing 2 bits at the bottom and then the pointer. These bits are currently unused thanks to alignment requirements. Configure Dynarmic to mask out these bits on pointer reads. While we are at it, remove some unused attributes carried over from Citra. Read/Write and other hot functions use a two step unpacking process that is less readable to stop MSVC from emitting an extra AND instruction in the hot path: mov rdi,rcx shr rdx,0Ch mov r8,qword ptr [rax+8] mov rax,qword ptr [r8+rdx*8] mov rdx,rax -and al,3 and rdx,0FFFFFFFFFFFFFFFCh je Core::Memory::Memory::Impl::Read<unsigned char> mov rax,qword ptr [vaddr] movzx eax,byte ptr [rdx+rax]
2020-12-06hle: kernel: Rewrite scheduler implementation based on Mesopshere.bunnei
2020-12-06hle: kernel: physical_core: Clear exclusive state after each run.bunnei
- This is closer to pre-multicore behavior, and works a bit better.
2020-11-29core: arm: Implement InvalidateCacheRange for CPU cache invalidation.bunnei
2020-11-29hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.bunnei
2020-11-27core: Eliminate remaining usages of the global system instanceLioncash
Removes all remaining usages of the global system instance. After this, migration can begin to migrate to being constructed and managed entirely by the various frontends.
2020-11-08cpu_interrupt_handler: Mark move contructor/assignment as deletedLioncash
The interrupt handler contains a std::atomic_bool, which isn't copyable or movable, so the special move member functions will always be deleted, despite being defaulted. This can resolve warnings on clang and GCC.
2020-11-06Merge pull request #4888 from lioncash/unicorn-removebunnei
core: Remove usage of unicorn
2020-11-03core: Remove usage of unicornLioncash
Unicorn long-since lost most of its use, due to dynarmic gaining support for handling most instructions. At this point any further issues encountered should be used to make dynarmic better. This also allows us to remove our dependency on Python.
2020-10-29General: Resolve a few missing initializer warningsLioncash
Resolves a few -Wmissing-initializer warnings.
2020-10-20Revert "core: Fix clang build"bunnei
2020-10-17core: Fix clang buildLioncash
Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
2020-09-22General: Make use of std::nullopt where applicableLioncash
Allows some implementations to avoid completely zeroing out the internal buffer of the optional, and instead only set the validity byte within the structure. This also makes it consistent how we return empty optionals.
2020-09-17arm_dynarmic_cp15: Initialize member variablesLioncash
Ensures that the member variables are always initialized to a deterministic value on creation.
2020-08-26cpu_interrupt_handler: Misc style changesReinUsesLisp
2020-08-26cpu_interrupt_handler: Make is_interrupted an atomicReinUsesLisp
Fixes a race condition detected from tsan
2020-08-16dynarmic: Add unsafe optimizationsMerryMage
2020-07-11configure_cpu: Show/Hide debugging optionsMerryMage
2020-07-11configuration: Add settings to enable/disable specific CPU optimizationsMerryMage
2020-07-07cpu_interrupt_handler: Remove #pragma once from .cpp fileMerryMage
2020-06-27Core/Common: Address Feedback.Fernando Sahmkow
2020-06-27SVC: Implement 32-bits wrappers and update Dynarmic.Fernando Sahmkow
2020-06-27ARM: Update Dynarmic and Setup A32 according to latest interface.Fernando Sahmkow
2020-06-27ArmDynarmic32: Setup CNTPCT correctlyFernando Sahmkow
2020-06-27ARMDynarmicInterface: Correct GCC Build Errors.Fernando Sahmkow
2020-06-27Clang Format.Fernando Sahmkow
2020-06-27ARMInterface/Externals: Update dynarmic and fit to latest version.Fernando Sahmkow
2020-06-27ARMInterface: Correct rebase errors.Fernando Sahmkow
2020-06-27Dynarmic Interface: don't clear cache if JIT has not been created.Fernando Sahmkow
2020-06-27General: Cleanup legacy code.Fernando Sahmkow
2020-06-27SingleCore: Use Cycle Timing instead of Host Timing.Fernando Sahmkow
2020-06-27General: Move ARM_Interface into Threads.Fernando Sahmkow
2020-06-27Core: Refactor ARM Interface.Fernando Sahmkow
2020-06-27X64 Clock: Reduce accuracy to be less or equal to guest accuracy.Fernando Sahmkow
2020-06-27ARM/WaitTree: Better track the CallStack for each thread.Fernando Sahmkow
2020-06-27SVC/ARM: Correct svcSendSyncRequest and cache ticks on arm interface.Fernando Sahmkow
2020-06-27ARM: Addapt to new Exclusive Monitor Interface.Fernando Sahmkow
2020-06-27General: Fix microprofile on dynarmic/svc, fix wait tree showing which ↵Fernando Sahmkow
threads were running.
2020-06-27ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.Fernando Sahmkow
2020-06-27Scheduler: Remove arm_interface lock and a few corrections.Fernando Sahmkow
2020-06-27Core: Correct rebase.Fernando Sahmkow