summaryrefslogtreecommitdiff
path: root/src/core/arm (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* | Merge pull request #8729 from merryhime/cp15-barriersGravatar bunnei2022-08-092-4/+29
|\ \ | |/ |/| arm_dynarmic_cp15: Implement CP15DMB/CP15DSB/CP15ISB
| * arm_dynarmic_cp15: Implement CP15DMB/CP15DSB/CP15ISBGravatar Merry2022-08-072-4/+29
| |
* | core/arm: fix build errorGravatar Liam2022-08-072-2/+10
| |
* | Merge pull request #8637 from liamwhite/bad-interruptsGravatar bunnei2022-08-077-85/+25
|\ \ | | | | | | kernel: unlayer CPU interrupt handling
| * | kernel: unlayer CPU interrupt handlingGravatar Liam2022-07-257-85/+25
| | |
* | | Merge pull request #8240 from liamwhite/count-cyclesGravatar Morph2022-08-072-8/+22
|\ \ \ | |_|/ |/| | core/arm: re-enable cycle counting
| * | core/arm: increase minimum_run_cyclesGravatar Liam2022-06-212-2/+2
| | |
| * | core/arm: re-enable cycle countingGravatar merry2022-06-212-6/+20
| | |
* | | chore: make yuzu REUSE compliantGravatar Andrea Pappacoda2022-07-273-9/+6
| |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254