Lioncash
15daa2cecd
service: Resolve cases of member field shadowing
...
Now all that remains is for kernel code to be 'shadow-free' and then
-Wshadow can be turned into an error.
2021-05-04 04:38:38 -04:00
Lioncash
84b656fbbd
core: Resolve misc cases of variable shadowing
...
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).
2021-05-03 01:19:13 -04:00
bunnei
7a76bc30fa
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
MerryMage
62b59f3588
arm_dynarmic: Increase size of code cache
2021-04-02 18:09:15 +01:00
MerryMage
eb3ece5770
arm_dynarmic: Always have a 'valid' jit instance
2021-03-24 18:47:17 +00:00
bunnei
1a89de249c
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
MerryMage
6f76ed25df
arm_dynarmic_32: Print out CPSR.T on exception
2021-02-01 18:35:33 +00:00
bunnei
1ebbfe8e3b
arm: dynarmic: Reintroduce JIT checks on SaveContext/LoadContext.
2021-01-28 21:50:39 -08:00
bunnei
2f34533f47
core: arm: Remove unnecessary JIT checks.
2021-01-28 21:42:26 -08:00
bunnei
db342cc6f0
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
bunnei
6cbeabce0d
core: arm: arm_interface: Fix shadowing errors.
2021-01-11 14:23:16 -08:00
ReinUsesLisp
53cf598783
core: Silence unhandled enum in switch warnings
2021-01-08 23:21:07 -03:00
MerryMage
c535205f1c
dynarmic: Add Unsafe_InaccurateNaN optimization
2021-01-02 20:13:21 +00:00
ReinUsesLisp
8bfa4d6dbf
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
bunnei
039844bbb9
hle: kernel: Rewrite scheduler implementation based on Mesopshere.
2020-12-06 00:03:24 -08:00
bunnei
abc079aca1
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
bunnei
a5b73195c9
core: arm: Implement InvalidateCacheRange for CPU cache invalidation.
2020-11-29 01:31:52 -08:00
bunnei
aaffe73f47
hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.
2020-11-29 01:31:51 -08:00
Lioncash
c06510376a
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
Lioncash
9568c94a11
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
bunnei
08056a8c3d
Merge pull request #4888 from lioncash/unicorn-remove
...
core: Remove usage of unicorn
2020-11-06 22:39:05 -08:00
Lioncash
5c55f3b585
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
Lioncash
3e654ff0d0
General: Resolve a few missing initializer warnings
...
Resolves a few -Wmissing-initializer warnings.
2020-10-29 19:37:07 -04:00
bunnei
deb3536936
Revert "core: Fix clang build"
2020-10-20 19:07:39 -07:00
Lioncash
18636013c9
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
Lioncash
e457001dce
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
Lioncash
4d0fa3544f
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
ReinUsesLisp
ad0306e520
cpu_interrupt_handler: Misc style changes
2020-08-26 02:43:26 +00:00
ReinUsesLisp
7eb6cc742a
cpu_interrupt_handler: Make is_interrupted an atomic
...
Fixes a race condition detected from tsan
2020-08-26 02:43:15 +00:00
MerryMage
1057908c3a
dynarmic: Add unsafe optimizations
2020-08-16 14:15:39 +01:00
MerryMage
f82bbf743c
configure_cpu: Show/Hide debugging options
2020-07-11 16:38:38 +01:00
MerryMage
79dfd272a9
configuration: Add settings to enable/disable specific CPU optimizations
2020-07-11 14:34:09 +01:00
MerryMage
d6c3391232
cpu_interrupt_handler: Remove #pragma once from .cpp file
2020-07-07 22:47:00 +01:00
Fernando Sahmkow
94a51e6b21
Core/Common: Address Feedback.
2020-06-27 18:20:06 -04:00
Fernando Sahmkow
8cd81eb66f
SVC: Implement 32-bits wrappers and update Dynarmic.
2020-06-27 11:36:27 -04:00
Fernando Sahmkow
fd631d72a6
ARM: Update Dynarmic and Setup A32 according to latest interface.
2020-06-27 11:36:26 -04:00
Fernando Sahmkow
a7be2fac83
ArmDynarmic32: Setup CNTPCT correctly
2020-06-27 11:36:24 -04:00
Fernando Sahmkow
af0999c735
ARMDynarmicInterface: Correct GCC Build Errors.
2020-06-27 11:36:17 -04:00
Fernando Sahmkow
adc86e3030
Clang Format.
2020-06-27 11:36:14 -04:00
Fernando Sahmkow
6cbdb64f3d
ARMInterface/Externals: Update dynarmic and fit to latest version.
2020-06-27 11:36:13 -04:00
Fernando Sahmkow
cce90e2672
ARMInterface: Correct rebase errors.
2020-06-27 11:36:12 -04:00
Fernando Sahmkow
b5f7040175
Dynarmic Interface: don't clear cache if JIT has not been created.
2020-06-27 11:36:08 -04:00
Fernando Sahmkow
6f0c873d48
General: Cleanup legacy code.
2020-06-27 11:36:05 -04:00
Fernando Sahmkow
f0f2fc4243
SingleCore: Use Cycle Timing instead of Host Timing.
2020-06-27 11:36:01 -04:00
Fernando Sahmkow
db60ca2704
General: Move ARM_Interface into Threads.
2020-06-27 11:35:58 -04:00
Fernando Sahmkow
7b3b33a2e6
Core: Refactor ARM Interface.
2020-06-27 11:35:56 -04:00
Fernando Sahmkow
1cc7c426df
X64 Clock: Reduce accuracy to be less or equal to guest accuracy.
2020-06-27 11:35:55 -04:00
Fernando Sahmkow
c22d3e1e18
ARM/WaitTree: Better track the CallStack for each thread.
2020-06-27 11:35:54 -04:00
Fernando Sahmkow
96c996b6a0
SVC/ARM: Correct svcSendSyncRequest and cache ticks on arm interface.
2020-06-27 11:35:53 -04:00
Fernando Sahmkow
fc47857c3b
ARM: Addapt to new Exclusive Monitor Interface.
2020-06-27 11:35:50 -04:00