a4c6712a4b
common: Move settings to common from core.
...
- Removes a dependency on core and input_common from common.
2021-04-14 16:24:03 -07:00
0fbd7752c3
arm_dynarmic: Increase size of code cache
2021-04-02 18:09:15 +01:00
52dae41d7f
arm_dynarmic: Always have a 'valid' jit instance
2021-03-24 18:47:17 +00:00
a35717b245
core: arm_dynarmic: Ensure JIT state is saved/restored on page table changes.
...
- We re-create the JIT here without preserving any state.
2021-03-21 15:25:25 -07:00
821fc4a7b6
arm_dynarmic_32: Print out CPSR.T on exception
2021-02-01 18:35:33 +00:00
c8fe8247ee
arm: dynarmic: Reintroduce JIT checks on SaveContext/LoadContext.
2021-01-28 21:50:39 -08:00
055194d2ab
core: arm: Remove unnecessary JIT checks.
2021-01-28 21:42:26 -08:00
9a4e148f9e
arm: arm_dynarmic: Skip calls when JIT is invalid.
...
- This can happen if called from an idle or suspension thread.
2021-01-28 21:42:25 -08:00
354130cd84
core: arm: arm_interface: Fix shadowing errors.
2021-01-11 14:23:16 -08:00
b4451c5e81
core: Silence unhandled enum in switch warnings
2021-01-08 23:21:07 -03:00
57c9da1b39
dynarmic: Add Unsafe_InaccurateNaN optimization
2021-01-02 20:13:21 +00:00
b3587102d1
core/memory: Read and write page table atomically
...
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-29 21:54:49 -03:00
9e29e36a78
hle: kernel: Rewrite scheduler implementation based on Mesopshere.
2020-12-06 00:03:24 -08:00
c10a37e5b6
hle: kernel: physical_core: Clear exclusive state after each run.
...
- This is closer to pre-multicore behavior, and works a bit better.
2020-12-06 00:03:24 -08:00
63fd1bb503
core: arm: Implement InvalidateCacheRange for CPU cache invalidation.
2020-11-29 01:31:52 -08:00
7b642c7781
hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.
2020-11-29 01:31:51 -08:00
5bc4eabe36
core: Eliminate remaining usages of the global system instance
...
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-27 11:40:45 -05:00
0aad914527
cpu_interrupt_handler: Mark move contructor/assignment as deleted
...
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-08 15:37:04 -05:00
af477fb8c5
Merge pull request #4888 from lioncash/unicorn-remove
...
core: Remove usage of unicorn
2020-11-06 22:39:05 -08:00
fc6db97a09
core: Remove usage of unicorn
...
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-11-03 20:22:05 -05:00
5553bd3ba2
General: Resolve a few missing initializer warnings
...
Resolves a few -Wmissing-initializer warnings.
2020-10-29 19:37:07 -04:00
3d592972dc
Revert "core: Fix clang build"
2020-10-20 19:07:39 -07:00
be1954e04c
core: Fix clang build
...
Recent changes to the build system that made more warnings be flagged as
errors caused building via clang to break.
Fixes #4795
2020-10-17 19:50:39 -04:00
ff45c39578
General: Make use of std::nullopt where applicable
...
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-22 17:32:33 -04:00
1ee9ceb5af
arm_dynarmic_cp15: Initialize member variables
...
Ensures that the member variables are always initialized to a
deterministic value on creation.
2020-09-17 13:03:49 -04:00
56ac22f737
cpu_interrupt_handler: Misc style changes
2020-08-26 02:43:26 +00:00
ea7bda25ba
cpu_interrupt_handler: Make is_interrupted an atomic
...
Fixes a race condition detected from tsan
2020-08-26 02:43:15 +00:00
836ec9176a
dynarmic: Add unsafe optimizations
2020-08-16 14:15:39 +01:00
505aa3a4c1
configure_cpu: Show/Hide debugging options
2020-07-11 16:38:38 +01:00
0193202964
configuration: Add settings to enable/disable specific CPU optimizations
2020-07-11 14:34:09 +01:00
e7c77b90c4
cpu_interrupt_handler: Remove #pragma once from .cpp file
2020-07-07 22:47:00 +01:00
2f8947583f
Core/Common: Address Feedback.
2020-06-27 18:20:06 -04:00
4105f38022
SVC: Implement 32-bits wrappers and update Dynarmic.
2020-06-27 11:36:27 -04:00
b8df61c642
ARM: Update Dynarmic and Setup A32 according to latest interface.
2020-06-27 11:36:26 -04:00
ec11918323
ArmDynarmic32: Setup CNTPCT correctly
2020-06-27 11:36:24 -04:00
0a8013d71e
ARMDynarmicInterface: Correct GCC Build Errors.
2020-06-27 11:36:17 -04:00
467d43570e
Clang Format.
2020-06-27 11:36:14 -04:00
3714f2e471
ARMInterface/Externals: Update dynarmic and fit to latest version.
2020-06-27 11:36:13 -04:00
dda6147b0d
ARMInterface: Correct rebase errors.
2020-06-27 11:36:12 -04:00
7b44187fd2
Dynarmic Interface: don't clear cache if JIT has not been created.
2020-06-27 11:36:08 -04:00
48fa3b7a0f
General: Cleanup legacy code.
2020-06-27 11:36:05 -04:00
f5e32935ca
SingleCore: Use Cycle Timing instead of Host Timing.
2020-06-27 11:36:01 -04:00
1567824d2d
General: Move ARM_Interface into Threads.
2020-06-27 11:35:58 -04:00
1b82ccec22
Core: Refactor ARM Interface.
2020-06-27 11:35:56 -04:00
534466754f
X64 Clock: Reduce accuracy to be less or equal to guest accuracy.
2020-06-27 11:35:55 -04:00
7b18174eef
ARM/WaitTree: Better track the CallStack for each thread.
2020-06-27 11:35:54 -04:00
87c49aa7be
SVC/ARM: Correct svcSendSyncRequest and cache ticks on arm interface.
2020-06-27 11:35:53 -04:00
25565dffd5
ARM: Addapt to new Exclusive Monitor Interface.
2020-06-27 11:35:50 -04:00
7020d498c5
General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running.
2020-06-27 11:35:48 -04:00
cd1c38be8d
ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.
2020-06-27 11:35:37 -04:00