Commit graph

109 commits

Author SHA1 Message Date
S Gopal Rajagopal
a9645eda73 Implement some more FP instructions in the PPU LLVM recompiler 2014-11-25 02:14:12 +05:30
S Gopal Rajagopal
bb1e08a6be Remove code left in comments from the PPU LLVM recompiler. Also cause the emulator to pause if unsupported instructions are required to be compiled. 2014-11-24 23:49:06 +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
5934132b55 Implemented VPK* 2014-11-23 20:47:00 +05:30
S Gopal Rajagopal
921ee1464b Implemented some vector instructions 2014-11-23 19:06:20 +05:30
DHrpcs3
cdfef3bf9e Fixed compilation errors
Implemented converter_le_be
2014-11-20 21:41:04 +02:00
S Gopal Rajagopal
5addbcbbb0 Direct UT output to PPULLVMRecompiler.log 2014-11-21 00:04:59 +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
13acb06d1a Implemented ANDC and also added support for TB and TBH in MFSPR 2014-11-20 01:03:51 +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
5c468d7591 Disabled call stack tracing when using the PPU LLVM recompiler 2014-11-09 11:50:01 +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
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
160b58cf61 Fixed compilation issues 2014-10-25 06:56:57 +05:30
S Gopal Rajagopal
6bc0ce8046 Intial commit for advanced tracer 2014-10-25 06:38:47 +05:30
raven02
4eb4186b5c Support FCTID/FCTIW instructions 2014-10-24 08:46:14 +08:00
raven02
20a5bf424f Support FSQRT/FSQRTS instructions 2014-10-21 22:20:52 +08:00
S Gopal Rajagopal
4514fc12bd Updated Travis CI configuration to compile LLVM 2014-10-21 02:17:00 +05:30
S Gopal Rajagopal
024c15d4d3 Some cleanup 2014-10-20 01:16:35 +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
b95cddb0c7 Fix compilation errors caused by rebase 2014-10-14 14:23:50 +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
9c99fc7bb1 Disabled unit tests 2014-10-13 15:40:41 +05:30
S Gopal Rajagopal
3e7d42b023 Support some instructions 2014-10-13 15:40:41 +05:30
S Gopal Rajagopal
1bd235616f Implemented branch instructions and some basic block combining. 2014-10-13 15:40:40 +05:30
gopalsr83
d5e86f7190 Fixed compilation in Linux. Have not tested it though. 2014-10-13 15:40:39 +05:30
S Gopal Rajagopal
f210180aa6 Disabled the use of BMI instructions since older processors do not support it 2014-10-13 15:40:39 +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
1f3a117744 Disabled tests 2014-10-13 15:26:08 +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
791f8e3b9a Compilation Fix 2014-10-13 15:25:02 +05:30
S Gopal Rajagopal
6135b450c2 Implemented fallback to PPU Interpreter 2014-10-13 15:22:39 +05:30