-
revert [dynarmic] Remove last FPT LUT table, removing around 30kb worth of unused functions (#3718) Stable
released this
2026-04-03 05:53:07 +02:00 | 0 commits to master since this releasePull request build #3820
Commit:
466e75960eMerge base:
d1b7824443
(Master Build)Changelog
revert [dynarmic] Remove last FPT LUT table, removing around 30kb worth of unused functions (#3718)
Lets do the quick math
There was 1 LUT for every fsize() instancingNow... the number of functions on each lut was (fsize + 1), multiplied by 5 (number of rounding modes)
8 = 9 * 5 = 45
16 = 17 * 5 = 85
32 = 33 * 5 = 165
64 = 65 * 5 = 325this is just pure insanity - look at what fucking nm reported:
0000000003dc39b8 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<16ul, false>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut 0000000003dc3a18 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<16ul, true>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut 0000000003dc39d8 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<32ul, false>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut 0000000003dc3a38 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<32ul, true>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut 0000000003dc39f8 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<64ul, false>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut 0000000003dc3a58 0000000000000008 V guard variable for void Dynarmic::Backend::X64::EmitFPVectorToFixed<64ul, true>(Dynarmic::Backend::X64::BlockOfCode&, Dynarmic::Backend::X64::EmitContext&, Dynarmic::IR::Inst*)::lut"ah its not bad" - OH MATE ITS JUST THE GUARD VARIABLES - i attached a file with just the functions generated for each case...
now with this PR only 6 * 6 functions are made (still not ideal, but way better), 36 is way better than 1156 FUCKING FUNCTIONS
Currently introduced audio issues, it's going to be worked and re-implemented in the near future.
- CamilleLaVey
Signed-off-by: lizzie lizzie@eden-emu.dev
Reviewed-on: eden-emu/eden#3718
Reviewed-by: DraVee chimera@dravee.dev
Reviewed-by: Maufeat sahyno1996@gmail.com
Co-authored-by: lizzie lizzie@eden-emu.dev
Co-committed-by: lizzie lizzie@eden-emu.devPackages
Targets
Each build is optimized for a specific architecture and uses a specific compiler.
- aarch64/arm64: For devices that use the armv8-a instruction set; e.g. Snapdragon X, all Android devices, and Apple Silicon Macs.
- amd64: For devices that use the amd64 (aka x86_64) instruction set; this is exclusively used by Intel and AMD CPUs and is only found on desktops.
PGO
PGO builds usually perform ~10-30% better than standard builds, and are thus generally recommended for all users.
Linux
Linux packages are distributed via AppImage.
Build Type GCC Notes amd64 GCC Steam Deck GCC Zen 2, with additional patches for SteamOS aarch64 GCC Windows
Windows packages are in-place zip files. Setup files are soon to come.
Note that arm64 builds are experimental.Compiler amd64 arm64 Notes MSVC amd64 MinGW amd64 arm64 Android
Build Description Standard The standard build. Most users should use this. ChromeOS For devices running Chrome/FydeOS, AVD emulators, or certain Intel Atom Android devices. macOS
macOS comes in a tarballed app. These builds are currently experimental, and you should expect major graphical glitches and crashes.
In order to run the app, you may need to go to System Settings -> Privacy & Security -> Security -> Allow untrusted app.File Description macOS For Apple Silicon (M1, M2, etc) Downloads
- Eden-Android-3820-466e75960e-chromeos.apk
- Eden-Android-3820-466e75960e-standard.apk
- Eden-Linux-3820-466e75960e-aarch64-gcc-standard.AppImage
- Eden-Linux-3820-466e75960e-amd64-gcc-standard.AppImage
- Eden-Linux-3820-466e75960e-steamdeck-gcc-standard.AppImage
- Eden-Windows-3820-466e75960e-amd64-msvc-standard.zip
- Eden-Windows-3820-466e75960e-mingw-amd64-gcc-standard.zip
- Eden-Windows-3820-466e75960e-mingw-arm64-clang-standard.zip
- Eden-macOS-3820-466e75960e.tar.gz