mirror of
https://github.com/Ishan09811/pine.git
synced 2025-04-24 08:55:10 +00:00
* Introduce Jit32 and JitCore32 objects * Initialize JIT when launching 32bit executables * Introduce kernel objects for 32bit processes This commit introduces two new kernel thread types, `KNceThread` and `Jit32Thread`. `KNceThread`s behave like the previous kernel thread object by setting up thread state and jumping into guest code. `KJit32Thread`s need to run guest code on a `JitCore32` object, so they perform the necessary state setup and then they also setup the jit core for executing guest code. A loop was introduced because jit execution might return when halted, either for an SVC or for preemption. In those cases the thread needs to wait to be scheduled before executing again. The process object has also been updated to be able to create 32bit threads when running 32bit processes. Additionally NCE's ThreadContext has been removed from DeviceState, since a thread is not an NCE thread only anymore, and IPC code has been changed to retrieve the tls region from the thread object. * Introduce a preemption handler for scheduling with JIT Scheduler initialization has been delayed until process information is available, as it needs to differentiate between 32bit and 64bit processes. * Support initializing VMM for 32bit address spaces * Implement GetThreadContext3 SVC for 32bit processes * Introduce a thread local pointer to the current guest thread This also gives easier access to the current guest process structure via the thread structure, just like any kernel does for their internal structures. * Add a signal handler for JIT threads * Implement coprocessor 15 accesses * Implement exclusive memory writes and exclusive monitor * Enable JIT fastmem * Enable more JIT optimizations and log exceptions * Fix incorrect logging call in QueryMemory * Translate guest virtual addresses on direct accesses from SVCs * Perform TLS page address translation for direct accesses This allows the IPC code to work without modifications since `KThread::tlsRegion` now stores a host address that can be accessed directly. * Add Dynarmic as a submodule * Revert "Perform TLS page address translation for direct accesses" This reverts commit 2e25b3f7e4f0687b038fa949648c74e3393da006. * Revert "Translate guest virtual addresses on direct accesses from SVCs" This reverts commit 7bec4e0902e6dbb6f06a2efac53a1e2127f44068. * add an option to change cpu backend * Fix --------- Co-authored-by: lynxnb <niccolo.betto@gmail.com>
64 lines
2.1 KiB
Plaintext
64 lines
2.1 KiB
Plaintext
[submodule "{fmt}"]
|
|
path = app/libraries/fmt
|
|
url = https://github.com/fmtlib/fmt
|
|
[submodule "Oboe"]
|
|
path = app/libraries/oboe
|
|
url = https://github.com/google/oboe
|
|
branch = 1.3-stable
|
|
[submodule "LZ4"]
|
|
path = app/libraries/lz4
|
|
url = https://github.com/lz4/lz4.git
|
|
[submodule "Frozen"]
|
|
path = app/libraries/frozen
|
|
url = https://github.com/serge-sans-paille/frozen
|
|
[submodule "tzcode"]
|
|
path = app/libraries/tzcode
|
|
url = https://github.com/skyline-emu/tz
|
|
branch = master
|
|
[submodule "Perfetto"]
|
|
path = app/libraries/perfetto
|
|
url = https://android.googlesource.com/platform/external/perfetto
|
|
branch = releases/v12.x
|
|
[submodule "Vulkan-Hpp"]
|
|
path = app/libraries/vkhpp
|
|
url = https://github.com/KhronosGroup/Vulkan-Hpp
|
|
[submodule "Vulkan Memory Allocator"]
|
|
path = app/libraries/vkma
|
|
url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator
|
|
[submodule "Mbed TLS"]
|
|
path = app/libraries/mbedtls
|
|
url = https://github.com/ARMmbed/mbedtls
|
|
[submodule "Opus"]
|
|
path = app/libraries/opus
|
|
url = https://github.com/xiph/opus
|
|
[submodule "Boost"]
|
|
path = app/libraries/boost
|
|
url = https://github.com/strato-emu/boost.git
|
|
[submodule "C++ Range v3"]
|
|
path = app/libraries/range
|
|
url = https://github.com/ericniebler/range-v3
|
|
[submodule "Sirit"]
|
|
path = app/libraries/sirit
|
|
url = https://github.com/Ishan09811/sirit
|
|
[submodule "Shader Compiler"]
|
|
path = app/libraries/shader-compiler
|
|
url = https://github.com/ishan09811/shader-compiler.git
|
|
[submodule "libadrenotools"]
|
|
path = app/libraries/adrenotools
|
|
url = https://github.com/bylaws/libadrenotools/
|
|
[submodule "app/libraries/robin-map"]
|
|
path = app/libraries/robin-map
|
|
url = https://github.com/Tessil/robin-map
|
|
[submodule "app/libraries/thread-pool"]
|
|
path = app/libraries/thread-pool
|
|
url = https://github.com/bshoshany/thread-pool.git
|
|
[submodule "app/libraries/cubeb"]
|
|
path = app/libraries/cubeb
|
|
url = https://github.com/skyline-emu/cubeb
|
|
[submodule "app/libraries/audio-core"]
|
|
path = app/libraries/audio-core
|
|
url = https://github.com/ishan09811/audio-core
|
|
[submodule "app/libraries/dynarmic"]
|
|
path = app/libraries/dynarmic
|
|
url = https://github.com/strato-emu/dynarmic.git
|