aboutsummaryrefslogtreecommitdiff
path: root/src/dynarmic/tests
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Import experimental NS2 support and accumulated GPU fixes"Takoroka6 days3-622/+0
| | | | | This reverts commit 535b676970. The Switch 2 support comes from the nx2 work instead, merged next.
* Import experimental NS2 support and accumulated GPU fixesyumekiru6 days3-0/+622
| | | | | | | | | | | Bring the NS2 patch and local follow-up fixes onto Eglantine master. Includes native graphics services, instruction translation, syncpoint cancellation acknowledgement, texture handling and diagnostics. Experimental checkpoint; not ready to merge. The original Eden build passed, but this rebased branch has not been built or tested. Assisted-by: OpenAI Codex (implementation, debugging, tests and PR preparation)
* [dynarmic] Coalesce non-exclusive Write/Read fallback functions (#4158)lizzie2026-09-199-248/+248
| | | | | | | | | | | | | | | | | | | the general idea is to have a common procedure form whom to call this way theres less "jumping around" for values of different sizes additionally this **should** allow for better codegen since most of the u8,u16,u32,u64 can be held within a u64 theoretically this means that you could deifne callbacks in suck a way that it's essentially as costly as a `mov r64, m64` but that's not doable due to the fact we have to do translations... Is this a good change? Primarily aimed for x86 and ARM to benefit, but I suppose LooooooongArch64 can benefit too. Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4158 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
* [dynarmic] Fix broken tests and SIGABRT with f16 inst gen (#4366)lizzie2026-09-095-40/+44
| | | | | | | | | | | | | | | | F16 instructions aren't supported yet, thus disable them. Also compilation/build errors. Signed-off-by: lizzie <lizzie@eden-emu.dev> - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4366 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Maufeat <sahyno1996@gmail.com>
* [common] Switch to boost::unordered_flat containers (#4326)crueter2026-08-313-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces all instances of ankerl's unordered map/set with boost's `unordered_flat_*` classes. This uses std::hash since boost::hash is actually a lot slower. Also adds an abstraction layer in `Common` so future changes are quicker and easier. Other implementation details: - ankerl provided hash specializations for tuple and pair, so those were ported here - std::erase_if doesn't work on boost, so just used the ADL'd erase_if This should be about equal or superior performance as unordered_dense for everything except iteration. Signed-off-by: crueter <crueter@eden-emu.dev> - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4326 Reviewed-by: Lizzie and Samuel <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [fmt] use {#:x} instead of 0x{:#x} (#4170)lizzie2026-07-251-2/+2
| | | | | | | | | | continuation of #309 but applying to even more files than before :) also makes them lowercase because `0xfafafa` is better as `0XFAFAFA` Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4170 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Maufeat <sahyno1996@gmail.com>
* [dynarmic] flatten terminal variants to not use recursive pointers (#4218)lizzie2026-07-251-26/+14
| | | | | | | | | | | | | | | | | | take If{then, else} for example 100% of the time If{} only has a leaf terminal, supporting If{If{}, If{}} is very dumb and we don't need that so remove that this reduces > The recursive_wrapper class template has an interface similar to a simple value container, but its content is allocated dynamically aka. uses malloc and spams heap EVERYTIME A CONDITIONAL TERMINAL IS USED thats bad tbf, i dont like it, removing it is better for general speedup also we dont REALLY need if{if{if{if{}}}} support, like really Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4218 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com>
* [common] rework BitField and BitUtil, use concepts whenever possible (#4076)lizzie2026-07-091-4/+5
| | | | | | | | | | test no regressions especially on Liiinux Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4076 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [dynarmic] fix pre-SSE4.1 having errors on CMHI/CMLO, fix extra nuisances ↵lizzie2026-06-032-23/+46
| | | | | | | | | | | | | and add INTERP testcase (#4025) does a bit of code dedup fixes pre-SSE4.1 having horrific CMHI/CMLO Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4025 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [dynarmic] cleanup duplicate code and reimpls of std::* bit stuff (#4017)lizzie2026-05-311-1/+1
| | | | | | | | | | | | | | | A bit of a minor cleanup - std::rotr instead of mcl::bit::rotate_right - std::rotl likewise - std::popcount instaed of "count ones" - use ConvertRoundingModeToX64Immediate where appropiate - std integral Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4017 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev>
* [dynarmic] drop Xeon Phi features from tests (#3978)Marcin Serwin2026-05-181-5/+0
| | | | | | | | | | | | xbyak 7.37 dropped support for them, see <https://github.com/herumi/xbyak/commit/a33007c908022b46b1a982afe649ded73a15219e> and <https://github.com/herumi/xbyak/pull/244>. Signed-off-by: Marcin Serwin <marcin@serwin.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3978 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: Lizzie <lizzie@eden-emu.dev>
* [dynarmic, macroHLE] Use faster ankerl for xbyak maps (#3716)lizzie2026-05-151-1/+4
| | | | | | | | | | | | the nominal std::unordered_map<> isn't enough to warrant it's continued usage in xbyak internal structures, thus using ankerl should greatly remove a lot of indirection/stdc++ specific overhead from the usually poorly performant std::unordered_map Both dynarmic and macroHLE should benefit greatly from a less-stupid unordered_dense This should speedup both CPU and shader compilation latency (NOT BY A GREAT MARGIN) just enough to make loading zones in ToTK less horrific Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3716 Reviewed-by: crueter <crueter@eden-emu.dev>
* [dynarmic] remove decode matcher function handlers using std::function<>, ↵lizzie2026-05-092-7/+7
| | | | | | | | | | | | | | | use raw function pointers (#3920) issues: - std::function<> is used, which is famously bad - storage of tehse in tables makes big fucking tables for no good reason - lets just store a normal pointer and stuff! :) this pr attempts to address that Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3920 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
* [macos, dynarmic] Implement VectorMin/Max{S,U}64 emitters (Apple Silicon ↵rayman302026-05-031-2/+29
| | | | | | | | | | | | | | | | | | | | | fix) (#3421) [macos] dynarmic: Implement VectorMin/Max{S,U}64 emitters (Apple Silicon fix) Implements the missing A64 backend emitters for VectorMinS64, VectorMinU64, VectorMaxS64, and VectorMaxU64. These IR opcodes are generated by the optimizer but lack direct hardware instruction support for 64-bit elements in the base NEON set (e.g., UMIN.2D does not exist). They are implemented using a compare (CMGT/CMHI) followed by a bitwise select (BSL). This correctly selects between the two source registers, whereas using BIT would incorrectly zero out elements. This implementation is guarded by #ifdef __APPLE__ to ensure no impact on other platforms. Unit tests could not be added to a64.cpp because UMIN.2D is not a valid A64 instruction, causing the assembler (Oaknut) to reject it. The fix was verified by running Team Sonic Racing, which previously crashed on this synthetic opcode. Fixes crash in Team Sonic Racing on macOS. Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3421 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev>
* [dynarmic, cmake] Assorted RISC-V build fixes (#3797)lizzie2026-04-0622-31/+33
| | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3797 Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] implement missing SSE3 implementations (#3301)lizzie2026-03-311-0/+99
| | | | | | | | | | | | | | | | Implementations for SSE3 CPUs (prescott) Instead of fixing some of the bugs with HostCall when paired with vectors, i'll simply remove as many host calls as I can within the most used vector instructions - then just minimize their usage to memory read/writes. Emitting the raw assembly code is faster than doing a HostCall, HostCalls are VERY expensive. So this is the desired output anyways. Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3301 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] nuke mcl dependency (#3777)lizzie2026-03-277-150/+146
| | | | | | | | | | | | | | | | | | | crueter will love this one mcl nuked off externals, i did however copy some important headers (notably intrusive list and bit.hpp); because grand part of dynarmic still uses them but i made the appropriate adjustments anyways solves mcl for #3373 depends on #3718 Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3777 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] fix dynarmic_tests build issues on xcode due to using relative ↵lizzie2026-03-2323-117/+111
| | | | | | | | | | | | | | paths (#3765) Thanks to @chrelliott978 for the initial impl Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3765 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] Fix building of tests (#3599)DraVee2026-02-221-3/+1
| | | | | | | | | Proposed-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3599 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Lizzie <lizzie@eden-emu.dev> Co-authored-by: DraVee <dravee@eden-emu.dev> Co-committed-by: DraVee <dravee@eden-emu.dev>
* [dynarmic] fix SignedDiv64 crashing if immediate constprop took effect; also ↵lizzie2026-02-211-19/+85
| | | | | | | | | | | | | | | | | | | | | | fix result for 0x8000_0000/0xFFFF_FFFF not returning properly for SignedDiv32 (#3517) a program could crash the emulator by just using div immediates and/or dividing by 0x8000_0000_0000_0000/0xFFFF_FFFF_FFFF_FFFF X0 = 0x8000_0000_0000_0000 X1 = 0xFFFF_FFFF_FFFF_FFFF SDIV X2, X0, X1 SDIV X2, X1, X0 <- crashes emu Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3517 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] remove dead-code interpreter (#3547)lizzie2026-02-217-37/+1
| | | | | | | | | | | | | interpreter was never called in practice and doesn't do anything other than just crash Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3547 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <dravee@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [cmake] Fix MoltenVK Fetch and Dynarmic tests build (#3559)crueter2026-02-201-5/+5
| | | | | | | | Originally was a test for Qt 6.9.3. Still broken, I have absolutely zero idea how to fix it. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3559 Reviewed-by: Lizzie <lizzie@eden-emu.dev>
* [dynarmic] remove dead-code arm/thumb disassembler (#3546)lizzie2026-02-174-387/+3
| | | | | | | | | | | | llvm already does this, no need to reinvent the wheel Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3546 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [*] change all std::unordered_map and std::unordered_set into ↵lizzie2026-02-102-6/+6
| | | | | | | | | | | | | | | | | | | ankerl::unordered_dense::map/set variants (#3442) mainly doing this to reduce memory footprint; we all know how nice ankerl::unordered_dense is in theory 4x faster - in practice these maps arent that "hot" anyways so not likely to have much perf gained i just want to reduce mem fragmentation to ease my porting process, plus it helps other platforms as well (ahem weak Mediatek devices) :) Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3442 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] reduce CPU usage on Spooky Mansion by making blocks be page-sized ↵lizzie2026-01-314-9/+9
| | | | | | | | | | | | | | | and page-aligned; replace std::set<> with ankerl set in arm64 (#3253) reduces CPU usage by about 10-20%, may be placebo Signed-off-by: lizzie lizzie@eden-emu.dev Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3253 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [cmake] fix dynarmic tests (#3192)Marcin Serwin2025-12-231-1/+1
| | | | | | | | | | | | | The old style `add_test` invocation is not target aware which means that trying to run the test via `ninja test` results in: Could not find executable dynarmic_tests Signed-off-by: Marcin Serwin <marcin@serwin.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3192 Co-authored-by: Marcin Serwin <marcin@serwin.dev> Co-committed-by: Marcin Serwin <marcin@serwin.dev>
* [src/dynarmic] Fix No member named 'join' in namespace 'fmt' (#3188)SDK Chan2025-12-211-0/+1
| | | | | | | | | | | Clang seems to complain that fmt doesn't have a member named join so, it fails to build. Including fmt/ranges.h fixes that, and lets eden be buildable again. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3188 Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: SDK Chan <sdkchan@eden-emu.dev> Co-committed-by: SDK Chan <sdkchan@eden-emu.dev>
* [dynarmic] allow better dtrace diagnostics for code - do not clobber %rbp ↵lizzie2025-12-171-5/+18
| | | | | | | | | | | | | | and save frame pointer (#2653) Saving the %rbp pointer allows us to backref previous stackframes easily Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2653 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [cmake] more modules, general "cleanup" (#3126)crueter2025-12-041-1/+1
| | | | | | | | | | | | | | Successor to that old MoltenVK PR. Does a lot of cleanups within root CMakeLists.txt, hands over MoltenVK and VulkanValidationLayers to CPMUtil, and separates out common operations into my modules. Hopefully reduces the monstrosity that is root CMakeLists.txt. Please test: - builds on all platforms - VulkanValidationLayers Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3126 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
* [cmake] account for sysroot when cross compiling for SunOS/FBSD/etc; ↵lizzie2025-11-031-1/+0
| | | | | | | | | | | | | | dynarmic now uses ARCHITECTURE_* from global defs (#2928) fixes when cross compiling for fbsd/openbsd Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2928 Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] simplify assert macro usage (Only ASSERT/DEBUG_ASSERT are needed) ↵lizzie2025-10-316-17/+41
| | | | | | | | | | | | | | | | | | | | | (#2890) - replace instances of ASSERT() with those where UNREACHABLE() should be used instead - debuggers exist for a reason, you can't just debug an issue in dynarmic with just printing fancy text... you need to inspect values and alldat - while yes the asserts are "useful"; there is this beautiful thing called backtraces - this will indirectly speedup the main decoder loop because of the added UNREACHABLE() - this also removes a bunch of macros that were redundant - the weird trick of [&](){}() is really funky, just do what everyone has done for the past 30 years and use a `do { <thing> } while(0)` :) I may or may not have missed one assert or messed up my regex substitutions... Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2890 Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev> Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] nuke zydis/zycore out of orbit forever (#2893)lizzie2025-10-305-6/+6
| | | | | | | | | | | LLVM does what Zydisn't Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2893 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] use (v)pshufb (SSSE3+) for VREV32/64 emits (#2851)lizzie2025-10-291-0/+22
| | | | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2851 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] Refactoring to reduce latency hit from recompilation (#358)lizzie2025-10-282-9/+9
| | | | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/358 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* Revert "[dynarmic] replace mcl::bit_cast with std::bit_cast; fix IR_emit ↵unknown2025-10-281-0/+1
| | | | | | | | | | codepath warnings for UNREACHABLE(); remove type trait mcl::integer_of_size dependency (#2775)" (#2863) This reverts commit 61ab1be0e70b6e86a15f4938666d3968e20f59f3. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2863 Co-authored-by: unknown <sahyno1996@gmail.com> Co-committed-by: unknown <sahyno1996@gmail.com>
* [dynarmic] replace mcl::bit_cast with std::bit_cast; fix IR_emit codepath ↵lizzie2025-10-281-1/+0
| | | | | | | | | | | | | | | | warnings for UNREACHABLE(); remove type trait mcl::integer_of_size dependency (#2775) - std::bit_cast already on libc++ (see also #2774) - type trait is a 5-liner for u8/u16/u32/u64 - UNREACHABLE(); can just be converted into __builtin_unreachable() (TODO: eventually phase out to std::unreachable() once all platforms support it)\ The templatery parametrization is creating many copies of the same function, polluting i-cache and just bloating code size for minimal savings (and in fact could be negative net savings because of the bloated code size) - this is mostly in preparation to a partial removal of template<size_t XXX> in functions to remove instancing (think of the function being copied x4 times... because the compiler is forced to inline it...) Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2775 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [cmake, dynarmic/tests] do not enable avx2, remove unused cmake opts (#2844)lizzie2025-10-271-4/+0
| | | | | | | | | Signed-off-by: lizzie lizzie@eden-emu.dev Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2844 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [common] replace Common::BitCast with libc++ provided one (#2774)lizzie2025-10-221-23/+13
| | | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2774 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [compat] Solaris build fixes for openssl, catch2; NetBSD build fixes (#2752)lizzie2025-10-171-12/+28
| | | | | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2752 Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [linux] fix aarch64 builds (again) + fix with slightly outdated qt (#2612)lizzie2025-09-291-1/+3
| | | | | | | | | | | | Fixes issues building on aarch64 linux with a slightly outdated system qt; also fixes linker selection process Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2612 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] fix tests builds (#2601)lizzie2025-09-2717-36/+56
| | | | | | | | | | | | This fixes tests for dynarmic, print_info and test_generator. Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2601 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] merge IR opt pass into single TU (#2561)lizzie2025-09-243-49/+8
| | | | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2561 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] remove frontend options; fixup exception handler code to support ↵lizzie2025-09-241-83/+85
| | | | | | | | | | | other OSes, do not use mcl macros for arch in EH (#2540) Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2540 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [dynarmic] jit fix branch v2 (#203)crueter2025-08-2720-160/+493
| | | | | | Co-authored-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/203 Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
* [cmake] refactor: CPM over vcpkg (#250)crueter2025-08-141-4/+4
| | | | | | | | | Completely replaces vcpkg with CPM for all "system" dependencies. Primarily needed for Android and Windows. Also uses my OpenSSL CI for those two platforms. In theory, improves configure and build time by a LOT and makes things much easier to manage Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/250 Reviewed-by: Lizzie <lizzie@eden-emu.dev>
* [cmake] don't explicitly set archflags by default (#220)crueter2025-08-0722-5463/+0
| | | | | | | | | Closes #216 Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/220 Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
* [meta] remove MicroProfile (#185)crueter2025-08-0622-0/+5463
| | | | | | Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/185 Reviewed-by: Lizzie <lizzie@eden-emu.dev>
* [dynarmic] revert bad changes (#202)crueter2025-08-047-230/+16
| | | | | | | | | | | | This reverts commit 56acd4041ac0052c3b753950587851877e961a66. pr needs rebase and fix, audio broke Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/202 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Signed-off-by: crueter <crueter@eden-emu.dev>
* [cmake] refactor: Use CPM over submodules (#143)crueter2025-08-0438-0/+37209
Transfers the majority of submodules and large externals to CPM, using source archives rather than full Git clones. Not only does this save massive amounts of clone and configure time, but dependencies are grabbed on-demand rather than being required by default. Additionally, CPM will (generally) automatically search for system dependencies, though certain dependencies have options to control this. Testing shows gains ranging from 5x to 10x in terms of overall clone/configure time. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/143 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>