[dynarmic] remove bloated LUT usage that makes giant functions for no good reason #2801
No reviewers
Labels
No labels
android
audio
bug
ci
cmake
confirmed
core
desktop
duplicate
enhancement
frontend
fw
git
graphics
loader
nv gpu
ui
vulkan
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
eden-emu/eden!2801
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "dynarmic-lut-obliterate"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Long story short, each of these LUT generates a function that is only ran once, spam the entire code with bunch of little "specialized templates" (remember, N * M * L) and basically bloat codesize for no good reason
Additionally it tries to outsmart the compiler which it's not always a good idea - herein I replace most (except 1) of those "helper" LUTs with something the compiler can actually work satisfiably
Happy reminder of the sheer amount of functions spammed:
mcl::list thing generates a number from 0 to 63 for (fsize 64), add the 0-31 for fsize 32, 0-15 for fsize 16 and you got around... 64+32+16 = 112 functions for a single parameter
Now include in the equation rounding_mode, which is about, what, 6? so 112*6 = 672
Yeah
Signed-off-by: lizzie lizzie@eden-emu.dev
d5dc2da3218ce5e6213a