LLVM based PPU Recompiler. Intial commit
Implemented a basic UT framework for PPULLVMRecompiler
Moved tests to a new file
Added more tests
Added support for 3 more instructions
Added support for a few more vector instructions
Added support for MULLI
Support few more instructions
Refactoring + new instructions
Implemented fallback to PPU Interpreter
Added LLVM as a submodule
Compilation Fix
Made changes so that the recompiler output may be verfied against that of the interpreter. This seems to be a better strategy for testing the recompiler. The best strategy would be to verify its output against a real PPU core but I dont have access to one.
Made changes so that there is a single LLVM context instead of one per PPU. If separate LLVM contexts are used per PPU and if different PPUs execute the same address then the address will have to compiled once per PPU.
Some refactoring. Added support for some load/store instructions.
Disabled tests
Run recompilation in the background
Fixed some bugs that prevented the recompiler from terminating properly
Enabled some LLVM analysis/transform passes
Implement mul, neg, nor, subf
Implemented LF*, STF*, RL* and a few more instructions