summaryrefslogtreecommitdiff
path: root/src/core/arm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* core: Support multiple modules per patcherGravatar GPUCode2024-01-152-38/+72
|
* core: track separate heap allocation for linuxGravatar Liam2023-12-254-0/+79
|
* kernel: instantiate memory separately for each guest processGravatar Liam2023-12-228-20/+20
|
* Merge pull request #12417 from liamwhite/arm64-gcc-fixGravatar Fernando S2023-12-202-2/+6
|\ | | | | nce: hide shadowing warnings from dynarmic headers
| * nce: hide shadowing warnings from dynarmic headersGravatar Liam2023-12-202-2/+6
| |
* | nce: increase handler stack sizeGravatar Liam2023-12-191-1/+1
| |
* | nce: fix read size in simd immediate emulationGravatar Liam2023-12-191-1/+2
|/
* nce: adjust initialization for repeated callsGravatar Liam2023-12-111-8/+11
|
* nce: implement instruction emulation for misaligned memory accessesGravatar Liam2023-12-107-41/+3842
|
* debug: fix reading of module namesGravatar Liam2023-12-091-1/+4
|
* Merge pull request #12236 from liamwhite/cpu-refactorGravatar Fernando S2023-12-0616-1121/+972
|\ | | | | core: refactor emulated cpu core activation
| * arm: fix context save of vector regsGravatar Liam2023-12-041-6/+4
| |
| * core: refactor emulated cpu core activationGravatar Liam2023-12-0416-1121/+974
| |
* | nce: fix pre-text patch for single modulesGravatar Liam2023-12-021-0/+2
|/
* core: Rename patcher fileGravatar GPUCode2023-11-293-2/+2
|
* oaknut: Address warningsGravatar GPUCode2023-11-251-4/+0
|
* Address more review commentsGravatar GPUCode2023-11-252-5/+8
|
* arm_nce: skip data aborts for crash handling parityGravatar Liam2023-11-251-3/+11
|
* arm: Print backtrace on data abortGravatar GPUCode2023-11-251-0/+2
|
* patch: check offsets from first code wordGravatar Liam2023-11-251-3/+4
|
* arm_nce: skip dc cvac on possibly write-protected areasGravatar Liam2023-11-251-3/+1
|
* Address some review commentsGravatar GPUCode2023-11-253-17/+9
|
* arm: Implement native code execution backendGravatar Liam2023-11-259-0/+1533
|
* core: check for thread dpc before eretGravatar Liam2023-11-131-8/+8
|
* kernel: update KProcessGravatar Liam2023-10-211-3/+3
|
* Merge pull request #10839 from lat9nq/pgc-plusGravatar liamwhite2023-08-022-6/+6
|\ | | | | general: Reimplement per-game configurations
| * settings,general: Rename non-confirming enumsGravatar lat9nq2023-07-212-6/+6
| |
* | Merge pull request #10990 from comex/ubsanGravatar liamwhite2023-07-262-3/+3
|\ \ | | | | | | Fixes and workarounds to make UBSan happier on macOS
| * | Fixes and workarounds to make UBSan happier on macOSGravatar comex2023-07-152-3/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are still some other issues not addressed here, but it's a start. Workarounds for false-positive reports: - `RasterizerAccelerated`: Put a gigantic array behind a `unique_ptr`, because UBSan has a [hardcoded limit](https://stackoverflow.com/questions/64531383/c-runtime-error-using-fsanitize-undefined-object-has-a-possibly-invalid-vp) of how big it thinks objects can be, specifically when dealing with offset-to-top values used with multiple inheritance. Hopefully this doesn't have a performance impact. - `QueryCacheBase::QueryCacheBase`: Avoid an operation that UBSan thinks is UB even though it at least arguably isn't. See the link in the comment for more information. Fixes for correct reports: - `PageTable`, `Memory`: Use `uintptr_t` values instead of pointers to avoid UB from pointer overflow (when pointer arithmetic wraps around the address space). - `KScheduler::Reload`: `thread->GetOwnerProcess()` can be `nullptr`; avoid calling methods on it in this case. (The existing code returns a garbage reference to a field, which is then passed into `LoadWatchpointArray`, and apparently it's never used, so it's harmless in practice but still triggers UBSan.) - `KAutoObject::Close`: This function calls `this->Destroy()`, which overwrites the beginning of the object with junk (specifically a free list pointer). Then it calls `this->UnregisterWithKernel()`. UBSan complains about a type mismatch because the vtable has been overwritten, and I believe this is indeed UB. `UnregisterWithKernel` also loads `m_kernel` from the 'freed' object, which seems to be technically safe (the overwriting doesn't extend as far as that field), but seems dubious. Switch to a `static` method and load `m_kernel` in advance.
* / core: remove remaining uses of dynamic_castGravatar Liam2023-07-215-14/+15
|/
* arm_interface: correct breakpoint rewind conditionGravatar Liam2023-07-091-1/+1
|
* arm_dynarmic_32: Remove disabling of block linking on arm64Gravatar Merry2023-06-271-5/+0
|
* core: decouple ARM interface from DynarmicGravatar Liam2023-06-1212-151/+167
|
* core: arm_dynarmic_32: Update SaveContext/LoadContext.Gravatar bunnei2023-04-011-13/+10
|
* memory: rename global memory references to application memoryGravatar Liam2023-03-233-7/+7
|
* kernel: use KTypedAddress for addressesGravatar Liam2023-03-226-22/+22
|
* general: rename CurrentProcess to ApplicationProcessGravatar Liam2023-02-131-3/+3
|
* kernel/svc: switch to generated wrappersGravatar Liam2023-02-061-0/+1
|
* Be careful of mangled out of bounds readGravatar Kelebek12023-01-141-4/+0
|
* Add stacktrace symbol demanglingGravatar Kelebek12023-01-141-14/+4
|
* externals: update dynarmic, xbyakGravatar Liam2023-01-052-0/+8
|
* core: add option to break on unmapped accessGravatar Liam2022-12-023-6/+44
|
* Dynarmic: Remove inaccurate NaN from Auto CPU settings.Gravatar Fernando Sahmkow2022-11-171-1/+0
|
* Initial ARM64 supportGravatar Liam2022-11-093-9/+22
|
* arm_interface: curb infinite recursion in stacktrace generationGravatar Liam2022-10-272-2/+2
|
* core: hle: kernel: k_thread: Implement thread termination DPC.Gravatar bunnei2022-10-181-0/+8
|
* k_server_session: preliminary support for userspace server sessionsGravatar Liam2022-10-111-0/+1
|
* code: dodge PAGE_SIZE #defineGravatar Kyle Kienapfel2022-08-191-2/+2
| | | | | | | | | | | | | | | | | | | | | Some header files, specifically for OSX and Musl libc define PAGE_SIZE to be a number This is great except in yuzu we're using PAGE_SIZE as a variable Specific example `static constexpr u64 PAGE_SIZE = u64(1) << PAGE_BITS;` PAGE_SIZE PAGE_BITS PAGE_MASK are all similar variables. Simply deleted the underscores, and then added YUZU_ prefix Might be worth noting that there are multiple uses in different classes/namespaces This list may not be exhaustive Core::Memory 12 bits (4096) QueryCacheBase 12 bits ShaderCache 14 bits (16384) TextureCache 20 bits (1048576, or 1MB) Fixes #8779
* Merge pull request #8745 from merryhime/null-fastmem-arenaGravatar liamwhite2022-08-122-7/+11
|\ | | | | arm_dynarmic: Fix nullptr fastmem arenas
| * arm_dynarmic: Fix nullptr fastmem arenasGravatar Merry2022-08-092-7/+11
| | | | | | | | Unable to enable fastmem of exclusive access without a valid fastmem arena.