aboutsummaryrefslogtreecommitdiff
path: root/src/core/arm
AgeCommit message (Collapse)Author
2024-01-15core: Support multiple modules per patcherGPUCode
2023-12-25core: track separate heap allocation for linuxLiam
2023-12-22kernel: instantiate memory separately for each guest processLiam
2023-12-20Merge pull request #12417 from liamwhite/arm64-gcc-fixFernando S
nce: hide shadowing warnings from dynarmic headers
2023-12-20nce: hide shadowing warnings from dynarmic headersLiam
2023-12-19nce: increase handler stack sizeLiam
2023-12-19nce: fix read size in simd immediate emulationLiam
2023-12-11nce: adjust initialization for repeated callsLiam
2023-12-10nce: implement instruction emulation for misaligned memory accessesLiam
2023-12-09debug: fix reading of module namesLiam
2023-12-06Merge pull request #12236 from liamwhite/cpu-refactorFernando S
core: refactor emulated cpu core activation
2023-12-04arm: fix context save of vector regsLiam
2023-12-04core: refactor emulated cpu core activationLiam
2023-12-02nce: fix pre-text patch for single modulesLiam
2023-11-29core: Rename patcher fileGPUCode
2023-11-25oaknut: Address warningsGPUCode
2023-11-25Address more review commentsGPUCode
2023-11-25arm_nce: skip data aborts for crash handling parityLiam
2023-11-25arm: Print backtrace on data abortGPUCode
2023-11-25patch: check offsets from first code wordLiam
2023-11-25arm_nce: skip dc cvac on possibly write-protected areasLiam
2023-11-25Address some review commentsGPUCode
2023-11-25arm: Implement native code execution backendLiam
2023-11-13core: check for thread dpc before eretLiam
2023-10-21kernel: update KProcessLiam
2023-08-02Merge pull request #10839 from lat9nq/pgc-plusliamwhite
general: Reimplement per-game configurations
2023-07-26Merge pull request #10990 from comex/ubsanliamwhite
Fixes and workarounds to make UBSan happier on macOS
2023-07-21core: remove remaining uses of dynamic_castLiam
2023-07-21settings,general: Rename non-confirming enumslat9nq
2023-07-15Fixes and workarounds to make UBSan happier on macOScomex
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.
2023-07-09arm_interface: correct breakpoint rewind conditionLiam
2023-06-27arm_dynarmic_32: Remove disabling of block linking on arm64Merry
2023-06-12core: decouple ARM interface from DynarmicLiam
2023-04-01core: arm_dynarmic_32: Update SaveContext/LoadContext.bunnei
2023-03-23memory: rename global memory references to application memoryLiam
2023-03-22kernel: use KTypedAddress for addressesLiam
2023-02-13general: rename CurrentProcess to ApplicationProcessLiam
2023-02-06kernel/svc: switch to generated wrappersLiam
2023-01-14Be careful of mangled out of bounds readKelebek1
2023-01-14Add stacktrace symbol demanglingKelebek1
2023-01-05externals: update dynarmic, xbyakLiam
2022-12-02core: add option to break on unmapped accessLiam
2022-11-17Dynarmic: Remove inaccurate NaN from Auto CPU settings.Fernando Sahmkow
2022-11-09Initial ARM64 supportLiam
2022-10-27arm_interface: curb infinite recursion in stacktrace generationLiam
2022-10-18core: hle: kernel: k_thread: Implement thread termination DPC.bunnei
2022-10-11k_server_session: preliminary support for userspace server sessionsLiam
2022-08-19code: dodge PAGE_SIZE #defineKyle Kienapfel
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
2022-08-12Merge pull request #8745 from merryhime/null-fastmem-arenaliamwhite
arm_dynarmic: Fix nullptr fastmem arenas
2022-08-09Merge pull request #8729 from merryhime/cp15-barriersbunnei
arm_dynarmic_cp15: Implement CP15DMB/CP15DSB/CP15ISB