Lioncash
b117ca5fce
kernel/svc: Deglobalize the supervisor call handlers
...
Adjusts the interface of the wrappers to take a system reference, which
allows accessing a system instance without using the global accessors.
This also allows getting rid of all global accessors within the
supervisor call handling code. While this does make the wrappers
themselves slightly more noisy, this will be further cleaned up in a
follow-up. This eliminates the global system accessors in the current
code while preserving the existing interface.
2019-04-07 20:30:05 -04:00
Lioncash
a6a82bb004
arm/arm_dynarmic: Remove unnecessary current_page_table member
...
Given the page table will always be guaranteed to be that of whatever
the current process is, we no longer need to keep this around.
2019-04-07 02:43:51 -04:00
Lioncash
5b0a9f8ba8
core: Add missing override specifiers where applicable
...
Applies the override specifier where applicable. In the case of
destructors that are defaulted in their definition, they can
simply be removed.
This also removes the unnecessary inclusions being done in audin_u and
audrec_u, given their close proximity.
2019-04-04 12:19:44 -04:00
bunnei
93da8e0abf
core: Move PageTable struct into Common.
2019-03-16 22:05:40 -04:00
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.
2019-02-15 21:50:25 -05:00
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.
2018-10-15 14:15:50 -04:00
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.
2018-09-20 19:35:36 -04:00
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.
2018-09-18 03:20:04 -04:00
fearlessTobi
63c2e32e20
Port #4182 from Citra: "Prefix all size_t with std::"
2018-09-15 15:21:06 +02:00
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.
2018-08-24 21:50:39 -04:00
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.
2018-07-23 23:19:37 -04:00
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.
2018-07-23 20:54:57 -04:00
MerryMage
0b1c2e5505
Implement exclusive monitor
2018-07-22 15:55:17 +01:00
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.
2018-07-20 19:57:45 -05:00
MerryMage
56cc1c11ec
scheduler: Clear exclusive state when switching contexts
2018-07-16 11:24:00 +01:00
bunnei
23a0d2d7b7
Merge pull request #193 from N00byKing/3184_2_robotic_boogaloo
...
Implement Pull #3184 from citra: core/arm: Improve timing accuracy before service calls in JIT (Rebased)
2018-03-18 22:35:47 -04:00
bunnei
403f8e79ea
arm_interface: Support unmapping previously mapped memory.
2018-03-16 18:32:24 -04:00
N00byKing
bc88cae0c7
Implements citra-emu/citra#3184
2018-02-25 11:44:21 +01:00
MerryMage
d3bbed5e78
dynarmic: Update to 41ae12263
...
Changes: Primarily implementing more A64 instructions
2018-02-09 00:29:36 +00:00
bunnei
1247c53786
yuzu: Update license text to be consistent across project.
2018-01-13 16:22:39 -05:00
MerryMage
d2fbc78320
arm_dynarmic: Implement core
2018-01-12 17:48:29 -05:00
bunnei
6e9d66fd3a
arm_dynarmic: More cleanup.
2018-01-04 00:09:12 -05:00
bunnei
aa7e061e71
arm_dynarmic: Gut interface until dynarmic is ready for general use.
2018-01-03 22:10:11 -05:00
bunnei
b172f0d770
arm: Remove SkyEye/Dyncom code that is ARMv6-only.
2018-01-02 22:24:12 -05:00
bunnei
b1d5db1cf6
Merge remote-tracking branch 'upstream/master' into nx
...
# Conflicts:
# src/core/CMakeLists.txt
# src/core/arm/dynarmic/arm_dynarmic.cpp
# src/core/arm/dyncom/arm_dyncom.cpp
# src/core/hle/kernel/process.cpp
# src/core/hle/kernel/thread.cpp
# src/core/hle/kernel/thread.h
# src/core/hle/kernel/vm_manager.cpp
# src/core/loader/3dsx.cpp
# src/core/loader/elf.cpp
# src/core/loader/ncch.cpp
# src/core/memory.cpp
# src/core/memory.h
# src/core/memory_setup.h
2017-10-09 23:56:20 -04:00
bunnei
6377585edb
arm_interface: Set TLS address for dynarmic core.
2017-09-30 14:34:03 -04:00
bunnei
3411883fe3
arm: Use 64-bit addressing in a bunch of places.
2017-09-30 14:28:53 -04:00
Huw Pascoe
529f4a0131
Moved down_count to CoreTiming
2017-09-30 17:38:14 +01:00
MerryMage
67a70bd9e1
ARM_Interface: Implement PageTableChanged
2017-09-24 23:08:25 +01:00
MerryMage
2b36d4c9d7
arm_dynarmic: CP15 support
2017-02-03 17:32:47 +00:00
bunnei
8b1e269e58
ThreadContext: Move from "core" to "arm_interface".
2016-12-22 00:27:49 -05:00
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.
2016-09-21 11:15:47 +09:00
bunnei
05e120a4cc
arm: ResetContext shouldn't be part of ARM_Interface.
2016-09-15 17:49:30 -04:00
bunnei
85861d44b7
arm_dynarmic/arm_dyncom: Remove unnecessary "virtual" keyword.
2016-09-15 17:49:30 -04:00
bunnei
1976a2d773
dynarmic: Implement ARM CPU interface.
2016-09-15 17:49:26 -04:00