summaryrefslogtreecommitdiff
path: root/src/core/arm (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* arm_dynarmic_64: Re-add fastmem_address_space_bits to Auto settingGravatar lat9nq2021-07-081-0/+1
|
* arm_dynarmic{32,64}: Fixes from test buildGravatar lat9nq2021-07-082-18/+5
| | | | | Now sets optimizations regardless of the Settings. Drops unsafe fastmem optimization.
* core,common,yuzu qt: Add CPU accuracy option 'Auto'Gravatar lat9nq2021-07-082-8/+36
| | | | | | | The current CPU accuracy settings in yuzu are fairly polarized and require more than common knowledge to know what the optimal settings for yuzu would be. This adds a curated option called 'Auto' that applies a few at the moment known-good unsafe optimizations to Dynarmic.
* common: Replace common_sizes into user-literalsGravatar Wunkolo2021-06-242-4/+9
| | | | | | | | | | | | | Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc user-literals within literals.h. To keep the global namespace clean, users will have to use: ``` using namespace Common::Literals; ``` to access these literals.
* Update dynarmic and add new unsafe CPU option.Gravatar Fernando Sahmkow2021-06-201-0/+3
|
* General: Add settings for fastmem and disabling adress space check.Gravatar FernandoS272021-06-112-2/+11
|
* core: Make use of fastmemGravatar Markus Wick2021-06-112-0/+5
|
* Merge pull request #6385 from degasus/save_memory_accessGravatar bunnei2021-05-302-29/+31
|\ | | | | core/memory: Check our memory fallbacks for out-of-bound behavior.
| * core/arm_interface: Improve the performance of memory fallbacks.Gravatar Markus Wick2021-05-292-29/+31
| | | | | | | | | | We just create one memory subsystem. This is a constant all the time. So there is no need to call the non-inlined parent.Memory() helper on every callback.
* | externals: Update dynarmic.Gravatar Markus Wick2021-05-296-11/+11
|/ | | | The new version supports fastmem on a64.
* core/arm_interface: Call SVC after end of dynarmic block.Gravatar Markus Wick2021-05-275-17/+42
| | | | | | So we can modify all of dynarmic states within SVC without ExceptionalExit. Especially as the ExceptionalExit hack is dropped on upstream dynarmic.
* core/arm: Drop ChangeProcessorID.Gravatar Markus Wick2021-05-265-12/+0
| | | | | | This code was used to switch the CPU ID on thread switches. However since "hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.", the CPU ID is not a constant. This has been dead code since this rewrite, and dropped in dynarmic as well. So there is no need to keep it.
* Merge pull request #6321 from lat9nq/per-game-cpuGravatar bunnei2021-05-202-10/+10
|\ | | | | configuration: Add CPU tab to game properties and slight per-game settings rework
| * general: Make CPU accuracy and related a Settings::SettingGravatar lat9nq2021-05-152-10/+10
| | | | | | | | | | Required to make CPU accuracy and unsafe settings available to use as a per-game setting.
* | core: Make variable shadowing a compile-time errorGravatar Lioncash2021-05-165-6/+6
|/ | | | | | Now that we have most of core free of shadowing, we can enable the warning as an error to catch anything that may be remaining and also eliminate this class of logic bug entirely.
* hle: kernel: Rename Process to KProcess.Gravatar bunnei2021-05-051-1/+1
|
* service: Resolve cases of member field shadowingGravatar Lioncash2021-05-044-16/+16
| | | | | Now all that remains is for kernel code to be 'shadow-free' and then -Wshadow can be turned into an error.
* core: Resolve misc cases of variable shadowingGravatar Lioncash2021-05-031-6/+5
| | | | | | | | | Resolves shadowing warnings that aren't in a particularly large subsection of core. Brings us closer to turning -Wshadow into an error. All that remains now is for cases in the kernel (left untouched for now since a big change by bunnei is pending), and a few left over in the service code (will be tackled next).
* common: Move settings to common from core.Gravatar bunnei2021-04-142-2/+2
| | | | - Removes a dependency on core and input_common from common.
* arm_dynarmic: Increase size of code cacheGravatar MerryMage2021-04-022-0/+8
|
* arm_dynarmic: Always have a 'valid' jit instanceGravatar MerryMage2021-03-244-53/+26
|
* core: arm_dynarmic: Ensure JIT state is saved/restored on page table changes.Gravatar bunnei2021-03-212-0/+10
| | | | - We re-create the JIT here without preserving any state.
* arm_dynarmic_32: Print out CPSR.T on exceptionGravatar MerryMage2021-02-012-2/+7
|
* arm: dynarmic: Reintroduce JIT checks on SaveContext/LoadContext.Gravatar bunnei2021-01-282-0/+12
|
* core: arm: Remove unnecessary JIT checks.Gravatar bunnei2021-01-282-24/+0
|
* arm: arm_dynarmic: Skip calls when JIT is invalid.Gravatar bunnei2021-01-282-0/+24
| | | | - This can happen if called from an idle or suspension thread.
* core: arm: arm_interface: Fix shadowing errors.Gravatar bunnei2021-01-111-3/+4
|
* core: Silence unhandled enum in switch warningsGravatar ReinUsesLisp2021-01-081-8/+1
|
* dynarmic: Add Unsafe_InaccurateNaN optimizationGravatar MerryMage2021-01-022-0/+6
|
* core/memory: Read and write page table atomicallyGravatar ReinUsesLisp2020-12-292-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 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]
* hle: kernel: Rewrite scheduler implementation based on Mesopshere.Gravatar bunnei2020-12-061-1/+1
|
* hle: kernel: physical_core: Clear exclusive state after each run.Gravatar bunnei2020-12-062-0/+6
| | | | - This is closer to pre-multicore behavior, and works a bit better.
* core: arm: Implement InvalidateCacheRange for CPU cache invalidation.Gravatar bunnei2020-11-295-6/+29
|
* hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.Gravatar bunnei2020-11-295-0/+13
|
* core: Eliminate remaining usages of the global system instanceGravatar Lioncash2020-11-271-11/+0
| | | | | | 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.
* cpu_interrupt_handler: Mark move contructor/assignment as deletedGravatar Lioncash2020-11-081-2/+2
| | | | | | | | 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.
* Merge pull request #4888 from lioncash/unicorn-removeGravatar bunnei2020-11-065-381/+9
|\ | | | | core: Remove usage of unicorn
| * core: Remove usage of unicornGravatar Lioncash2020-11-035-381/+9
| | | | | | | | | | | | | | | | 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.
* | General: Resolve a few missing initializer warningsGravatar Lioncash2020-10-291-2/+10
|/ | | | Resolves a few -Wmissing-initializer warnings.
* Revert "core: Fix clang build"Gravatar bunnei2020-10-209-69/+53
|
* core: Fix clang buildGravatar Lioncash2020-10-179-53/+69
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* General: Make use of std::nullopt where applicableGravatar Lioncash2020-09-221-3/+3
| | | | | | | | 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.
* arm_dynarmic_cp15: Initialize member variablesGravatar Lioncash2020-09-171-2/+2
| | | | | Ensures that the member variables are always initialized to a deterministic value on creation.
* cpu_interrupt_handler: Misc style changesGravatar ReinUsesLisp2020-08-262-5/+3
|
* cpu_interrupt_handler: Make is_interrupted an atomicGravatar ReinUsesLisp2020-08-262-2/+3
| | | | Fixes a race condition detected from tsan
* dynarmic: Add unsafe optimizationsGravatar MerryMage2020-08-162-2/+24
|
* configure_cpu: Show/Hide debugging optionsGravatar MerryMage2020-07-112-46/+50
|
* configuration: Add settings to enable/disable specific CPU optimizationsGravatar MerryMage2020-07-112-10/+50
|
* cpu_interrupt_handler: Remove #pragma once from .cpp fileGravatar MerryMage2020-07-071-2/+0
|
* Core/Common: Address Feedback.Gravatar Fernando Sahmkow2020-06-278-10/+12
|