aboutsummaryrefslogtreecommitdiff
path: root/src/ARMeilleure
AgeCommit message (Collapse)Author
2024-09-15Make GetFunctionPointerForDelegate as explicit as possible (#7279)Emmanuel Hansen
Co-authored-by: gdk <gab.dark.100@gmail.com>
2024-09-12Implement Arm32 VSHLL and QADD16 instructions (#7301)gdkchan
2024-08-27Fix deadlock in background translation thread shutdown (#7239)David McFarland
TryDequeue checks for _disposed before taking the lock. If another thread calls Dispose before it takes the lock, it won't get woken up by the PulseAll call, and will deadlock in Monitor.Wait. Double-checking _disposed with the lock taken should avoid this.
2024-08-08Implement UQADD16, UQADD8, UQSUB16, UQSUB8, VQRDMULH, VSLI and VSWP Arm32 ↵gdkchan
instructions (#7174)
2024-06-19JIT: Coalesce copies on LSRA with simple register preferencing (#6950)gdkchan
* JIT: Coalesce copies on LSRA with simple register preferencing * PPTC version bump
2024-06-19JIT: Ensure entry block has no predecessors on RegisterUsage pass (#6951)gdkchan
2024-06-02Avoid inexact read with 'Stream.Read' (#6847)Marco Carvalho
2024-05-08Replace "List.ForEach" for "foreach" (#6783)Marco Carvalho
* Replace "List.ForEach" for "foreach" * dotnet format * Update Ptc.cs * Update GpuContext.cs
2024-04-09CPU: Produce non-inf results for RSQRTE instruction with subnormal inputs ↵gdkchan
(#6634) * CPU: Produce non-inf results for RSQRTE instruction with subnormal inputs * PPTC version bump
2024-04-07CPU: Fix PC alignment for ADR thumb instruction (#6613)gdkchan
* Fix PC alignment for ADR thumb instruction * PPTC version bump
2024-03-26Implement host tracked memory manager mode (#6356)gdkchan
* Add host tracked memory manager mode * Skipping flush is no longer needed * Formatting + revert unrelated change * LightningJit: Ensure that dest register is saved for load ops that do partial updates * avoid allocations when doing address space lookup Add missing improvement * IsRmwMemory -> IsPartialRegisterUpdateMemory * Ensure we iterate all private allocations in range * PR feedback and potential fixes * Simplified bridges a lot * Skip calling SignalMappingChanged if Guest is true * Late map bridge too * Force address masking for prefetch instructions * Reprotection for bridges * Move partition list validation to separate debug method * Move host tracked related classes to HostTracked folder * New HostTracked namespace * Move host tracked modes to the end of enum to avoid PPTC invalidation --------- Co-authored-by: riperiperi <rhy3756547@hotmail.com>
2024-03-14Separate guest/host tracking + unaligned protection (#6486)riperiperi
* WIP: Separate guest/host tracking + unaligned protection Allow memory manager to define support for single byte guest tracking * Formatting * Improve docs * Properly handle cases where the address space bits are too low * Address feedback
2024-01-30Cpu: Implement Vpadal and Vrintr instructions (#6185)Ac_K
* Cpu: Implement Vpadal and Vrintr instructions This PR superseed last instructions left in #2242. Since I'm not a CPU guy I've just ported the code and nothing more. Please be precise during review if there are some changes to be done. It should fixes #1781 Co-Authored-By: Piyachet Kanda <piyachetk@gmail.com> * Addresses gdkchan's feedback * Addresses gdkchan's feedback 2 * Apply suggestions from code review Co-authored-by: gdkchan <gab.dark.100@gmail.com> * another fix * Update InstEmitSimdHelper32.cs * Correct fix * Addresses gdkchan's feedback * Update CpuTestSimdCvt32.cs --------- Co-authored-by: Piyachet Kanda <piyachetk@gmail.com> Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2024-01-24Implement SQSHL (immediate) CPU instruction (#6155)gdkchan
* Implement SQSHL (immediate) CPU instruction * Fix test
2024-01-20Implement a new JIT for Arm devices (#6057)gdkchan
* Implement a new JIT for Arm devices * Auto-format * Make a lot of Assembler members read-only * More read-only * Fix more warnings * ObjectDisposedException.ThrowIf * New JIT cache for platforms that enforce W^X, currently unused * Remove unused using * Fix assert * Pass memory manager type around * Safe memory manager mode support + other improvements * Actual safe memory manager mode masking support * PR feedback
2024-01-18Change shader cache init wait method (#6131)gdkchan
* Change shader cache init wait method * Make field readonly
2024-01-18Move most of signal handling to Ryujinx.Cpu project (#6128)gdkchan
* Move most of signal handling to Ryujinx.Cpu project * Format whitespace * Remove unused member * Format whitespace * This does not need to be public anymore
2023-12-04editorconfig: Set default encoding to UTF-8 (#5793)TSRBerry
* editorconfig: Add default charset * Change file encoding from UTF-8-BOM to UTF-8
2023-11-16Fix JitCache.Unmap called with the same address freeing memory in use (#5937)gdkchan
2023-11-15Migrate to .NET 8 (#5887)Zoltan Csizmadia
* Change TargetFramework to net8.0 * Disable info messages * Fix warings * Disable additional analyzer messages * Fix typo * Add whitespace * Fix ref vs in warnings * Use explicit [In] on array parameters * No need to guard Remove with Contains * Use 'ArgumentOutOfRangeException.ThrowIf...' instead of explicitly throwing a new exception instance * Bump .NET SDK version * Enable JsonSerializerIsReflectionEnabledByDefault * Use 8.0.100 GA release * Bump System package versions --------- Co-authored-by: Zoltan Csizmadia <Zoltan.Csizmadia@vericast.com>
2023-11-05Better handle instruction aborts when hitting unmapped memory (#5869)Somebody Whoisbored
* Adjust ARMeilleure to better handle instruction aborts when hitting unmapped memory * Update src/ARMeilleure/Decoders/Decoder.cs Co-authored-by: gdkchan <gab.dark.100@gmail.com> --------- Co-authored-by: gdkchan <gab.dark.100@gmail.com>
2023-10-12Replace ReaderWriterLock with ReaderWriterLockSlim (#5785)sunshineinabox
* Replace ReaderWriterLock with ReaderWriterLockSlim * Resolve Feedback + Correct typo * Revert some unncessary logic
2023-10-07Fix return value of Get function when a result does not yet exist for the ↵sharmander
address. (#5768)
2023-10-05Strings should not be concatenated using '+' in a loop (#5664)Marco Carvalho
* Strings should not be concatenated using '+' in a loop * fix IDE0090 * undo GenerateLoadOrStore * prefer string interpolation * Update src/Ryujinx.Graphics.Shader/CodeGen/Glsl/Instructions/InstGen.cs Co-authored-by: Mary <thog@protonmail.com> --------- Co-authored-by: Mary <thog@protonmail.com>
2023-09-26GPU: Don't create tracking handles for buffer textures (#5727)riperiperi
* GPU: Don't create tracking handles for buffer textures Buffer texture memory is handled by the buffer cache - the texture shouldn't create any tracking handles as they aren't used. This change simply makes them create and iterate 0 tracking handles, while keeping the rest of the texture group around. This prevents a possible issue where many buffer textures are created as views of overlapping buffer ranges, and virtual regions have many dependant textures that don't actually contribute anything to handle state. Should improve performance in Mortal Kombat 1, possibly certain UE4 games when FIFO raises to 100%. * Fix interval tree bug * Don't check view compatibility for buffer textures
2023-08-13"static readonly" constants should be "const" instead (#5560)Marco Carvalho
* "static readonly" constants should be "const" instead * change fields to PascalCase
2023-08-09Allow access to code memory for exefs mods (#5518)TSRBerry
* Allow access to code memory for exefs mods * Add ASLR workaround for Skyline * Hardcode allowCodeMemoryForJit to true
2023-07-30CPU (A64): Add Fmaxp & Fminp Scalar Inst.s, Fast & Slow Paths; with Tests. ↵Domenico V
(#5502) * Add Fmaxp & Fminp Scalar Inst.s, Fast & Slow Paths; with Tests. * Ptc.InternalVersion = 5502
2023-07-24Add workflow to automatically check code style issues for PRs (#4670)TSRBerry
* Add workflow to perform automated checks for PRs * Downgrade Microsoft.CodeAnalysis to 4.4.0 This is a workaround to fix issues with dotnet-format. See: - https://github.com/dotnet/format/issues/1805 - https://github.com/dotnet/format/issues/1800 * Adjust editorconfig to be more compatible with Ryujinx code-style * Adjust .editorconfig line endings to match .gitattributes * Disable 'prefer switch expression' rule * Remove naming styles These are the default rules, so we don't need to override them. * Silence IDE0060 in .editorconfig * Slightly adjust .editorconfig * Add lost workflow changes * Move .editorconfig comment to the top * .editorconfig: private static readonly fields should be _lowerCamelCase * .editorconfig: Remove alignment for declarations as well * editorconfig: Add rule for local constants * Disable CA1822 for HLE services * Disable CA1822 for ViewModels Bindings won't work with static members, but this issue is silently ignored. * Run dotnet format for the whole solution * Check result code of SDL_GetDisplayBounds * Fix dotnet format style issues * Add missing trailing commas * Update Microsoft.CodeAnalysis.CSharp to 4.6.0 Skipping 4.5.0 since it breaks dotnet format * Restore old default naming rules for dotnet format * Add naming rule exception for CPU tests * checks: Include all files before excluding paths * Fix dotnet format issues * Check dotnet format version * checks: Run dotnet format with severity info again * checks: Disable naming style rules until they won't crash the process anymore * Remove unread private member * checks: Attempt to run analyzers 3 times before giving up * checks: Enable naming style rules again with the new retry logic
2023-07-16cpu: Hotfix missing ToNearest rounding mode casesTSRBerry
2023-06-28Cpu: Implement VCVT (between floating-point and fixed-point) instruction (#5343)Ac_K
* cpu: Implement VCVT (between floating-point and fixed-point) instruction Rebase, fix and superseed of https://github.com/Ryujinx/Ryujinx/pull/2915 (Since I only have little CPU knowledge, I hope I have done everything good) * Update Ptc.cs * Fix wrong cast * Rename tests * Addresses feedback Co-Authored-By: gdkchan <5624669+gdkchan@users.noreply.github.com> * Remove extra empty line --------- Co-authored-by: gdkchan <5624669+gdkchan@users.noreply.github.com>
2023-06-28Apply new naming rule to all projects except Vp9 (#5407)TSRBerry
2023-06-26[ARMeilleure] Address dotnet-format issues (#5357)TSRBerry
* dotnet format style --severity info Some changes were manually reverted. * dotnet format analyzers --serverity info Some changes have been minimally adapted. * Restore a few unused methods and variables * Silence dotnet format IDE0060 warnings * Silence dotnet format IDE0052 warnings * Address or silence dotnet format IDE1006 warnings * Address or silence dotnet format CA2208 warnings * Address dotnet format CA1822 warnings * Address or silence dotnet format CA1069 warnings * Silence CA1806 and CA1834 issues * Address dotnet format CA1401 warnings * Fix new dotnet-format issues after rebase * Address review comments * Address dotnet format CA2208 warnings properly * Fix formatting for switch expressions * Address most dotnet format whitespace warnings * Apply dotnet format whitespace formatting A few of them have been manually reverted and the corresponding warning was silenced * Add previously silenced warnings back I have no clue how these disappeared * Revert formatting changes for OpCodeTable.cs * Enable formatting for a few cases again * Format if-blocks correctly * Enable formatting for a few more cases again * Fix inline comment alignment * Run dotnet format after rebase and remove unused usings - analyzers - style - whitespace * Disable 'prefer switch expression' rule * Add comments to disabled warnings * Remove a few unused parameters * Adjust namespaces * Simplify properties and array initialization, Use const when possible, Remove trailing commas * Start working on disabled warnings * Fix and silence a few dotnet-format warnings again * Address IDE0251 warnings * Address a few disabled IDE0060 warnings * Silence IDE0060 in .editorconfig * Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas" This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e. * dotnet format whitespace after rebase * First dotnet format pass * Remove unnecessary formatting exclusion * Add unsafe dotnet format changes * Change visibility of JitSupportDarwin to internal
2023-06-24Empty "case" clauses that fall through to the "default" should be omitted ↵Marco Carvalho
(#5353) * Empty "case" clauses that fall through to the "default" should be omitted * default throw exception * format
2023-06-24MemoryManagement: Change return types for Commit/Decommit to void (#5325)TSRBerry
* Replace return type with void for Commit/Decommit * Small cleanup
2023-06-22GetHashCode should not reference mutable fields (#5331)Marco Carvalho
2023-06-15Inheritance list should not be redundant (#5230)Marco Carvalho
2023-06-15Blocks should be synchronized on read-only fields (#5212)Marco Carvalho
* Blocks should be synchronized on read-only fields * more readonlys * fix alignment * more * Update ISelfController.cs * simplify new * simplify new
2023-06-14test: Make tests runnable on system without 4KiB page size (#5184)Mary
* ARMeilleure: Do not hardcode 4KiB page size in JitCache * test: Do not hardcode page size to 4KiB for Ryujinx.Tests.Memory.Tests Fix running tests on Asahi Linux with 16KiB pages. * test: Do not hardcode page size to 4KiB for Ryujinx.Tests.Cpu Fix running tests on Asahi Linux. Test runner still crash when trying to run all test suite. * test: Do not hardcode page size to 4KiB for Ryujinx.Tests.Cpu Fix somecrashes on Asahi Linux. * test: Ignore Vshl test on ARM64 due to unicorn crashes * test: Workaround hardcoded size on some tests Change mapping of code and data in case of non 4KiB configuration. * test: Make CpuTestT32Flow depends on code address Fix failure with different page size. * test: Disable CpuTestThumb.TestRandomTestCases when page size isn't 4KiB The test data needs to be reevaluated to take different page size into account. * Address gdkchan's comments
2023-06-14Fix Arm32 double to int/uint conversion on Arm64 (#5292)gdkchan
* Fix Arm32 double to int/uint conversion on Arm64 * PPTC version bump
2023-06-11Implement fast path for AES crypto instructions on Arm64 (#5281)gdkchan
* Implement fast path for AES crypto instructions on Arm64 * PPTC version bump * Use AES HW feature check
2023-06-09Non-flags enums should not be used in bitwise operations (#5214)Marco Carvalho
2023-06-03Armeilleure: Fix support for Windows on ARM64 (#5202)Mary
* Armeilleure: Fix support for Windows on ARM64 Tested on Windows DevKit 2023. * Address gdkchan's comments
2023-05-10Ensure background translation threads exited before disposing JIT (#4874)gdkchan
2023-05-09Replace DelegateHelper with pre-generated delegates (#4867)gdkchan
2023-04-27Move solution and projects to srcTSR Berry