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
725bac1404
Scheduler: Remove arm_interface lock and a few corrections.
2020-06-27 11:35:35 -04:00
a33fbaddec
Core: Correct rebase.
2020-06-27 11:35:29 -04:00
04e0f8776c
General: Add better safety for JIT use.
2020-06-27 11:35:20 -04:00
e31425df38
General: Recover Prometheus project from harddrive failure
...
This commit: Implements CPU Interrupts, Replaces Cycle Timing for Host
Timing, Reworks the Kernel's Scheduler, Introduce Idle State and
Suspended State, Recreates the bootmanager, Initializes Multicore
system.
2020-06-27 11:35:06 -04:00
f2df941e8d
arm_dynarmic_64: Log the instruction when an exception is raised
2020-06-22 07:00:24 -04:00
e0af4cdf98
arm_dynarmic_32: Log under Core_ARM instead of HW_GPU
2020-06-22 06:59:41 -04:00
778043a44c
arm_dynarmic_32: Fix implicit conversion error in SetTPIDR_EL0
...
On MSVC builds we treat conversion warnings as errors.
2020-06-18 16:52:15 -03:00
52bcfac116
arm_dynarmic_cp15: Implement CNTPCT
2020-06-17 17:10:24 +01:00
109df7705f
arm_dynarmic_cp15: Update CP15
2020-06-17 17:10:24 +01:00
32a127faaa
arm_dynarmic_32: InterpreterFallback should never happen
2020-06-17 17:10:24 +01:00
cc84b48ce5
physical_core: Make use of std::make_unique instead of std::make_shared in ctor
...
We can also allow unicorn to be constructed in 32-bit mode or 64-bit
mode to satisfy the need for both interpreter instances.
Allows this code to compile successfully of non x86-64 architectures.
2020-04-24 00:20:58 -04:00
48b670d132
Merge pull request #3724 from bunnei/fix-unicorn
...
core: arm_unicorn: Fix interpret fallback by temporarily mapping instruction page.
2020-04-20 23:28:23 -04:00