bunnei
039844bbb9
hle: kernel: Rewrite scheduler implementation based on Mesopshere.
5 years ago
bunnei
abc079aca1
hle: kernel: physical_core: Clear exclusive state after each run.
- This is closer to pre-multicore behavior, and works a bit better.
5 years ago
bunnei
a5b73195c9
core: arm: Implement InvalidateCacheRange for CPU cache invalidation.
6 years ago
bunnei
aaffe73f47
hle: kernel: multicore: Replace n-JITs impl. with 4 JITs.
6 years ago
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.
6 years ago
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.
6 years ago
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.
6 years ago
Lioncash
3e654ff0d0
General: Resolve a few missing initializer warnings
Resolves a few -Wmissing-initializer warnings.
6 years ago
bunnei
deb3536936
Revert "core: Fix clang build"
6 years ago
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
6 years ago
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.
6 years ago
Lioncash
4d0fa3544f
arm_dynarmic_cp15: Initialize member variables
Ensures that the member variables are always initialized to a
deterministic value on creation.
6 years ago
ReinUsesLisp
ad0306e520
cpu_interrupt_handler: Misc style changes
6 years ago
ReinUsesLisp
7eb6cc742a
cpu_interrupt_handler: Make is_interrupted an atomic
Fixes a race condition detected from tsan
6 years ago
MerryMage
1057908c3a
dynarmic: Add unsafe optimizations
6 years ago
MerryMage
f82bbf743c
configure_cpu: Show/Hide debugging options
6 years ago
MerryMage
79dfd272a9
configuration: Add settings to enable/disable specific CPU optimizations
6 years ago
MerryMage
d6c3391232
cpu_interrupt_handler: Remove #pragma once from .cpp file
6 years ago
Fernando Sahmkow
94a51e6b21
Core/Common: Address Feedback.
6 years ago
Fernando Sahmkow
8cd81eb66f
SVC: Implement 32-bits wrappers and update Dynarmic.
6 years ago
Fernando Sahmkow
fd631d72a6
ARM: Update Dynarmic and Setup A32 according to latest interface.
6 years ago
Fernando Sahmkow
a7be2fac83
ArmDynarmic32: Setup CNTPCT correctly
6 years ago
Fernando Sahmkow
af0999c735
ARMDynarmicInterface: Correct GCC Build Errors.
6 years ago
Fernando Sahmkow
adc86e3030
Clang Format.
6 years ago
Fernando Sahmkow
6cbdb64f3d
ARMInterface/Externals: Update dynarmic and fit to latest version.
6 years ago
Fernando Sahmkow
cce90e2672
ARMInterface: Correct rebase errors.
6 years ago
Fernando Sahmkow
b5f7040175
Dynarmic Interface: don't clear cache if JIT has not been created.
6 years ago
Fernando Sahmkow
6f0c873d48
General: Cleanup legacy code.
6 years ago
Fernando Sahmkow
f0f2fc4243
SingleCore: Use Cycle Timing instead of Host Timing.
6 years ago
Fernando Sahmkow
db60ca2704
General: Move ARM_Interface into Threads.
6 years ago
Fernando Sahmkow
7b3b33a2e6
Core: Refactor ARM Interface.
6 years ago
Fernando Sahmkow
1cc7c426df
X64 Clock: Reduce accuracy to be less or equal to guest accuracy.
6 years ago
Fernando Sahmkow
c22d3e1e18
ARM/WaitTree: Better track the CallStack for each thread.
6 years ago
Fernando Sahmkow
96c996b6a0
SVC/ARM: Correct svcSendSyncRequest and cache ticks on arm interface.
6 years ago
Fernando Sahmkow
fc47857c3b
ARM: Addapt to new Exclusive Monitor Interface.
6 years ago
Fernando Sahmkow
b121009e03
General: Fix microprofile on dynarmic/svc, fix wait tree showing which threads were running.
6 years ago
Fernando Sahmkow
5eac520ae3
ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.
6 years ago
Fernando Sahmkow
a9ed059a07
Scheduler: Remove arm_interface lock and a few corrections.
6 years ago
Fernando Sahmkow
c8e62451c6
Core: Correct rebase.
6 years ago
Fernando Sahmkow
78eeea9f17
General: Add better safety for JIT use.
6 years ago
Fernando Sahmkow
7ee76003ad
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.
6 years ago
Morph
75e120056f
arm_dynarmic_64: Log the instruction when an exception is raised
6 years ago
Morph
393197f37c
arm_dynarmic_32: Log under Core_ARM instead of HW_GPU
6 years ago
ReinUsesLisp
a0cbf4f4e8
arm_dynarmic_32: Fix implicit conversion error in SetTPIDR_EL0
On MSVC builds we treat conversion warnings as errors.
6 years ago
MerryMage
8055a71e00
arm_dynarmic_cp15: Implement CNTPCT
6 years ago
MerryMage
0ac9600204
arm_dynarmic_cp15: Update CP15
6 years ago
MerryMage
fc1c12b2c9
arm_dynarmic_32: InterpreterFallback should never happen
6 years ago
Lioncash
dca9c90af3
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.
6 years ago
MerryMage
0bbafff3db
dynarmic: Add option to disable CPU JIT optimizations
6 years ago
bunnei
5ce3dc16a5
core: arm_unicorn: Fix interpret fallback by temporarily mapping instruction page.
6 years ago