Commit graph

39 commits

Author SHA1 Message Date
S Gopal Rajagopal
6ea50567b6 PPU: Implemented some instructions in the recompiler. Fixed some bugs in the interpreter. 2014-11-29 01:39:59 +05:30
S Gopal Rajagopal
d92344f383 Implement more instructions in the PPU LLVM recompiler 2014-11-24 01:41:25 +05:30
S Gopal Rajagopal
6661018691 Fixed the unit test framework for the PPU LLVM recompiler. Added tests for ANDC. Fixed an issues that prevented LMW/STMW from being generated properly. 2014-11-20 23:38:10 +05:30
S Gopal Rajagopal
e8582c8655 Improved the logic that detects which functions should be recompiled 2014-11-20 00:42:07 +05:30
S Gopal Rajagopal
1568d2d602 Fixed some more gcc/clang compilation errors 2014-11-10 14:32:41 +05:30
S Gopal Rajagopal
87accc624f Fixed some errors thrown by gcc/clang 2014-11-10 12:49:48 +05:30
S Gopal Rajagopal
06a4c301cd Merge remote-tracking branch 'upstream/master' into ppu_llvm_recompiler
Conflicts:
	rpcs3/Emu/Cell/PPUInterpreter.h
	rpcs3/Emu/Cell/PPULLVMRecompiler.cpp
	rpcs3/Emu/Cell/PPULLVMRecompiler.h
	rpcs3/Emu/Cell/PPUThread.cpp
	rpcs3/emucore.vcxproj.filters
	rpcs3/rpcs3.vcxproj
2014-11-10 02:31:35 +05:30
S Gopal Rajagopal
c12a98510c Utilize idle time to combine blocks 2014-11-10 01:04:21 +05:30
S Gopal Rajagopal
71c12360c7 Always inline functions 2014-11-09 14:03:36 +05:30
S Gopal Rajagopal
80294e1034 Fixed some bugs 2014-11-09 02:00:19 +05:30
S Gopal Rajagopal
34e34910fd Integrated execution engine, tracer, recompilation engine and compiler 2014-11-08 09:52:23 +05:30
S Gopal Rajagopal
ee6a239679 Generate code from a CFG 2014-11-07 16:24:59 +05:30
S Gopal Rajagopal
7c3c5ae08e Construct CFG from execution traces 2014-11-05 01:01:20 +05:30
Hykem
5a27a84f5a Merge branch 'master' of https://github.com/gopalsr83/rpcs3 into gopalsr83-master 2014-11-04 16:45:25 +00:00
S Gopal Rajagopal
7846fa5829 Made changes to tracer so that it understand compiled blocks 2014-11-01 01:22:39 +05:30
raven02
f54a5c6591 Stub DCBI instruction 2014-10-26 06:30:43 +08:00
S Gopal Rajagopal
6bc0ce8046 Intial commit for advanced tracer 2014-10-25 06:38:47 +05:30
S Gopal Rajagopal
ce4d04290e Support more instructions 2014-10-19 01:57:54 +05:30
S Gopal Rajagopal
35a0e0c625 Support more instructions 2014-10-16 15:28:57 +05:30
S Gopal Rajagopal
cd154ad357 Support more instructions 2014-10-13 15:40:42 +05:30
S Gopal Rajagopal
143f542bd6 Fixed some bugs 2014-10-13 15:40:42 +05:30
S Gopal Rajagopal
1bd235616f Implemented branch instructions and some basic block combining. 2014-10-13 15:40:40 +05:30
S Gopal Rajagopal
e687a91243 Implemented some FP instructions but did not add support for updating the FPSCR. Many misc changes. 2014-10-13 15:40:38 +05:30
S Gopal Rajagopal
ccc37b5dc5 Print disassembly to log 2014-10-13 15:40:38 +05:30
S Gopal Rajagopal
c72d97c64a Implemented LF*, STF*, RL* and a few more instructions 2014-10-13 15:30:58 +05:30
S Gopal Rajagopal
e485047a10 Enabled some LLVM analysis/transform passes
Implement mul, neg, nor, subf
2014-10-13 15:26:10 +05:30
S Gopal Rajagopal
d69de9c332 Fixed some bugs that prevented the recompiler from terminating properly 2014-10-13 15:26:09 +05:30
S Gopal Rajagopal
840ae2f86b Run recompilation in the background 2014-10-13 15:26:09 +05:30
S Gopal Rajagopal
f5188cdb32 Some refactoring. Added support for some load/store instructions. 2014-10-13 15:26:08 +05:30
S Gopal Rajagopal
1be5222e66 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. 2014-10-13 15:26:07 +05:30
S Gopal Rajagopal
a4bb9eaa55 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. 2014-10-13 15:26:07 +05:30
S Gopal Rajagopal
6135b450c2 Implemented fallback to PPU Interpreter 2014-10-13 15:22:39 +05:30
S Gopal Rajagopal
aa614e83f2 Refactoring + new instructions 2014-10-13 15:22:39 +05:30
S Gopal Rajagopal
878926f57c Support few more instructions 2014-10-13 15:22:38 +05:30
S Gopal Rajagopal
ac86ee8fa9 Added support for MULLI 2014-10-13 15:22:38 +05:30
S Gopal Rajagopal
d8d0c0d2fe Added support for 3 more instructions 2014-10-13 15:21:25 +05:30
S Gopal Rajagopal
66d0b25448 Moved tests to a new file 2014-10-13 15:21:24 +05:30
S Gopal Rajagopal
2ea881301a Implemented a basic UT framework for PPULLVMRecompiler 2014-10-13 15:18:53 +05:30
S Gopal Rajagopal
2bb63ad051 LLVM based PPU Recompiler. Intial commit 2014-10-13 15:18:17 +05:30