bunnei
93da8e0abf
core: Move PageTable struct into Common.
7 years ago
Lioncash
bd983414f6
core_timing: Convert core timing into a class
Gets rid of the largest set of mutable global state within the core.
This also paves a way for eliminating usages of GetInstance() on the
System class as a follow-up.
Note that no behavioral changes have been made, and this simply extracts
the functionality into a class. This also has the benefit of making
dependencies on the core timing functionality explicit within the
relevant interfaces.
7 years ago
David Marcec
08d5663cb8
Moved backtrace to ArmInterface
7 years ago
David Marcec
5102c91256
Moved backtrace to ArmInterface
Added to both dynarmic and unicorn
7 years ago
Lioncash
aeadbfa790
core: Make the exclusive monitor a unique_ptr instead of a shared_ptr
Like the barrier, this is owned entirely by the System and will always
outlive the encompassing state, so shared ownership semantics aren't
necessary here.
7 years ago
Lioncash
9b8fc2b689
arm_interface: Replace kernel vm_manager include with a forward declaration
Avoids an unnecessary inclusion and also uncovers three places where
indirect inclusions were relied upon, which allows us to also resolve
those.
8 years ago
Lioncash
b51e7e0288
arm_interface: Remove ARM11-isms from the CPU interface
This modifies the CPU interface to more accurately match an
AArch64-supporting CPU as opposed to an ARM11 one. Two of the methods
don't even make sense to keep around for this interface, as Adv Simd is
used, rather than the VFP in the primary execution state. This is
essentially a modernization change that should have occurred from the
get-go.
8 years ago
fearlessTobi
63c2e32e20
Port #4182 from Citra: "Prefix all size_t with std::"
8 years ago
Lioncash
43e0d865fa
core: Namespace all code in the arm subdirectory under the Core namespace
Gets all of these types and interfaces out of the global namespace.
8 years ago
Lioncash
7d124ec82b
arm_dynarmic: Make MakeJit() a const member function
This functions doesn't modify instance state, so it can be a made a
const member function.
8 years ago
Lioncash
e12c84d5c5
exclusive_monitor: Use consistent type alias for u64
Uses the same type aliases we use for virtual addresses, and converts
one lingering usage of std::array<uint64_t, 2> to u128 for consistency.
8 years ago
MerryMage
0b1c2e5505
Implement exclusive monitor
8 years ago
Subv
d84eb9dac6
CPU: Save and restore the TPIDR_EL0 system register on every context switch.
Note that there's currently a dynarmic bug preventing this register from being written.
8 years ago
MerryMage
56cc1c11ec
scheduler: Clear exclusive state when switching contexts
8 years ago
bunnei
403f8e79ea
arm_interface: Support unmapping previously mapped memory.
8 years ago
N00byKing
bc88cae0c7
Implements citra-emu/citra#3184
8 years ago
MerryMage
d3bbed5e78
dynarmic: Update to 41ae12263
Changes: Primarily implementing more A64 instructions
8 years ago
bunnei
1247c53786
yuzu: Update license text to be consistent across project.
8 years ago
MerryMage
d2fbc78320
arm_dynarmic: Implement core
8 years ago
bunnei
6e9d66fd3a
arm_dynarmic: More cleanup.
8 years ago
bunnei
aa7e061e71
arm_dynarmic: Gut interface until dynarmic is ready for general use.
8 years ago
bunnei
b172f0d770
arm: Remove SkyEye/Dyncom code that is ARMv6-only.
8 years ago
bunnei
6377585edb
arm_interface: Set TLS address for dynarmic core.
9 years ago
bunnei
3411883fe3
arm: Use 64-bit addressing in a bunch of places.
9 years ago
Huw Pascoe
529f4a0131
Moved down_count to CoreTiming
9 years ago
MerryMage
67a70bd9e1
ARM_Interface: Implement PageTableChanged
9 years ago
MerryMage
2b36d4c9d7
arm_dynarmic: CP15 support
9 years ago
bunnei
8b1e269e58
ThreadContext: Move from "core" to "arm_interface".
9 years ago
Emmanuel Gil Peyrot
ebdae19fd2
Remove empty newlines in #include blocks.
This makes clang-format useful on those.
Also add a bunch of forgotten transitive includes, which otherwise
prevented compilation.
10 years ago
bunnei
05e120a4cc
arm: ResetContext shouldn't be part of ARM_Interface.
10 years ago
bunnei
85861d44b7
arm_dynarmic/arm_dyncom: Remove unnecessary "virtual" keyword.
10 years ago
bunnei
1976a2d773
dynarmic: Implement ARM CPU interface.
10 years ago
wwylele
2161f52661
ARM: add ClearInstructionCache function
10 years ago
Lioncash
3b457a5876
arm_interface: Implement interface for retrieving VFP registers
11 years ago
Lioncash
dfb424b6d1
dyncom: Rename armdefs.h to armstate.h
11 years ago
Emmanuel Gil Peyrot
aea15f5c73
Core: Cleanup core includes.
11 years ago
Subv
115ad8e16a
fixup! Set the TLS address in the scheduler
11 years ago
Subv
000876858d
Core/Memory: Give every emulated thread it's own TLS area.
The TLS area for thread T with id Ti is located at TLS_AREA_VADDR + (Ti - 1) * 0x200.
This allows some games like Mario Kart 7 to continue further.
11 years ago
Emmanuel Gil Peyrot
bdcf28e3bc
Headers: Add some forgotten overrides, thanks clang!
11 years ago
Lioncash
c3ffe8f9c3
arm_interface: Support retrieval/storage to CP15 registers
11 years ago
Lioncash
8cf81643a9
arm_interface: Get rid of GetTicks.
Removes a TODO.
11 years ago
Lioncash
b7fac494cd
dyncom: Switch the app and system cores into the correct mode at initialization
11 years ago
Kevin Hartman
5fcbfc06eb
Scheduler refactor Pt. 1
* Simplifies scheduling logic, specifically regarding thread status. It should be much clearer which statuses are valid
for a thread at any given point in the system.
* Removes dead code from thread.cpp.
* Moves the implementation of resetting a ThreadContext to the corresponding core's implementation.
Other changes:
* Fixed comments in arm interfaces.
* Updated comments in thread.cpp
* Removed confusing, useless, functions like MakeReady() and ChangeStatus() from thread.cpp.
* Removed stack_size from Thread. In the CTR kernel, the thread's stack would be allocated before thread creation.
11 years ago
Yuri Kunde Schlesner
7b3452c730
Move ThreadContext to core/core.h and deal with the fallout
11 years ago
Subv
620d77b7e3
Timing: Use CoreTiming::GetTicks to keep track of ticks.
This will keep track of idle ticks for us, and fixes some tickcount-related issues
11 years ago
bunnei
4783133bbd
ARM: Add a mechanism for faking CPU time elapsed during HLE.
- Also a few cleanups.
11 years ago
purpasmart96
ebfd831ccb
License change
11 years ago
Emmanuel Gil Peyrot
f5d38649c7
Remove trailing spaces in every file but the ones imported from SkyEye, AOSP or generated
11 years ago
Lioncash
64cc6cb6cf
Fix documentation of parameters
11 years ago
Yuri Kunde Schlesner
d72708c1f5
Add `override` keyword through the code.
This was automated using `clang-modernize`.
12 years ago