decomp-permuter
decomp-permuter copied to clipboard
Randomly permute C files to better match a target binary
``` if (var) { unsigned char regalloc = -regalloc; } ``` This is guaranteed to cause chaos on gcc 2.x, especially when used on uninitialized variables. Might be worth implementing....
[This](https://decomp.me/scratch/PXN57) scratch shows an example where `x * 0x500` produces different codegen from `(x * 5)
This helps with useless moves emitted by gcc 2.8.1 by turning ``` [statements] ``` into ```c if (variable) { [statements] } else { [statements] } ``` Examples: https://decomp.me/scratch/hQYzv -> https://decomp.me/scratch/LJdek...
I'm not sure how to better describe this fake match mechanism, but it helped match an otherwise impossible function in PM: https://decomp.me/scratch/2YDex
The permuter should be able to work off of improvements it has already found, deepening the search space. Ideally this would work when running multithreaded. Each `Permuter` would have an...
The permuter should try to remove silly mutations that didn't help when it discovers a better score. We can accomplish this by taking the seed that produced the result and...
``` #define A B #define B C A ``` with import.py --preserve-macros=A will at the start of `preprocess_c_with_macros` create the temporary file ``` _permuter define A B #define B C...
i'm using windows 11 with devkitPro