Commit Graph

2244 Commits

Author SHA1 Message Date
Ben Vanik bba99d4a22 Refactoring to allow for raw binary loading. 2013-01-27 12:48:10 -08:00
Ben Vanik 26d5df0d38 Adding the start of the instruction test infrastructure. 2013-01-27 02:51:53 -08:00
Ben Vanik e37821cf36 Checking in binutils to enable ppc cross compile. 2013-01-27 00:22:59 -08:00
Ben Vanik e0951d012e Updating LLVM and ninja. 2013-01-26 22:32:43 -08:00
Ben Vanik d9b08f569f Adding a bunch of instructions. 2013-01-26 21:51:31 -08:00
Ben Vanik 733fe85d37 Cleaning up function registers and setting up CR. 2013-01-26 01:25:31 -08:00
Ben Vanik 9b3d96a8ae Cleaning up instruction decoding names to match the docs better. 2013-01-25 23:45:13 -08:00
Ben Vanik ffdc1e5d4b Hacking on some instructions. 2013-01-25 23:32:37 -08:00
Ben Vanik 2e6db831a5 TODO update. 2013-01-25 01:01:11 -08:00
Ben Vanik ebda245773 Better handling of invalid/unimplemented instructions. 2013-01-25 00:51:56 -08:00
Ben Vanik dcb958de54 Adding better register tracking through locals and fixing branches.
LLVM does an amazing job of optimizing this. There are many opportunities
to make it better, too, by preventing spilling where not required or only
spilling/filling things when needed.
2013-01-25 00:32:42 -08:00
Ben Vanik 47481fecf7 Adding tracing methods. 2013-01-24 00:10:24 -08:00
Ben Vanik 385a4ee23b Cleaning up function creation. 2013-01-23 22:38:59 -08:00
Ben Vanik a10a05b6f2 Misc output cleanup and a test run script. 2013-01-23 21:59:26 -08:00
Ben Vanik 860a0739ec Adding gflags to handle command line flags.
It sucks, but is the best there is without using boost.
2013-01-23 21:31:23 -08:00
Ben Vanik 01fee047f7 Update TODO.md 2013-01-22 13:15:02 -08:00
Ben Vanik 9dfcbee090 Update TODO.md 2013-01-22 10:50:20 -08:00
Ben Vanik 0aaaac2a7a Adding TODO. 2013-01-22 00:54:49 -08:00
Ben Vanik 91f9e8b7bb Generating a lot of code!
Still a few missing instructions/variants and other issues, but a big and
valid LLVM module is being generated.
2013-01-22 00:22:27 -08:00
Ben Vanik 791f14182c Fixing a bunch of valgrind errors and reworking globals. 2013-01-21 14:31:59 -08:00
Ben Vanik b29dd22850 Adding instruction emitting functions.
All empty, all ready to go!
2013-01-21 11:55:42 -08:00
Ben Vanik 95a8be078b Rearranging code a bit to keep things cleaner. 2013-01-21 10:58:52 -08:00
Ben Vanik b91d550ef1 Adding instruction generation loop.
Not yet doing anything, but close.
2013-01-21 01:11:57 -08:00
Ben Vanik 25af5f410a Cleaning up the names in imports/functions. 2013-01-21 00:13:00 -08:00
Ben Vanik 68cc34bb79 Fixing up basic block targets and such. 2013-01-20 17:27:49 -08:00
Ben Vanik 852536ae0a Basic function analysis.
Finds basic blocks and estimates proper function bounds.
Seems legit for compiled code.
2013-01-20 16:46:08 -08:00
Ben Vanik d4b0bf73c1 Prepping flow for basic block building. 2013-01-20 09:48:39 -08:00
Ben Vanik ca2908db32 Converting everything to C++ cause I'm a masochist. 2013-01-20 01:13:59 -08:00
Ben Vanik 8a5dcbc1dd Hacky state for instruction gen. 2013-01-19 11:04:22 -08:00
Ben Vanik ea5154af0f Codegen experimentation. 2013-01-19 05:26:01 -08:00
Ben Vanik c18e94c5be Fleshing out the symbol database.
Now detecting a lot of functions via method hints and generating stub
functions. A few holes (in the test xex), but enough to move forward with
codegen.
2013-01-17 23:18:09 -08:00
Ben Vanik f779adda55 Update README.md 2013-01-14 13:27:52 -08:00
Ben Vanik 6c5432eb45 Symbol database skeleton. 2013-01-14 00:02:24 -08:00
Ben Vanik bfec194533 Adding instruction table and basic PPC state.
Can decode a single instruction.
2013-01-13 21:25:28 -08:00
Ben Vanik 099e37490a Work on CPU, codegen skeleton, and thunk. 2013-01-13 15:48:18 -08:00
Ben Vanik 2f4bc598e5 CPU skeleton. 2013-01-13 00:34:08 -08:00
Ben Vanik bcd575f9b0 Massive dump of xenia-info required code.
This is a working xenia-info for xex files (no gdfs files yet).
2013-01-12 23:25:41 -08:00
Ben Vanik 986d63e412 Fixing xcode builds. 2013-01-11 01:54:48 -08:00
Ben Vanik eb7cf18acc Adding some third_party deps. 2013-01-11 01:28:56 -08:00
Ben Vanik 7e4a9220d7 Initial project skeleton.
This includes a working gyp-based build of an executable that uses LLVM.
2013-01-11 01:23:08 -08:00
Ben Vanik c03f57c8c6 Update README.md 2013-01-10 15:28:11 -08:00
Ben Vanik 086216937e Create LICENSE 2013-01-10 15:25:20 -08:00
Ben Vanik f3a941133a Update README.md 2013-01-10 15:22:20 -08:00
Ben Vanik 30bde439f7 Initial commit 2013-01-10 15:20:45 -08:00