Ben Vanik
ae4d8ad40e
Code fixes to get things somewhat compiling on Windows.
2013-01-30 01:35:08 -08:00
Ben Vanik
f117f870fb
Cleaning up build warnings.
2013-01-29 20:27:24 -08:00
Ben Vanik
9c86c29140
Setting up locals in codegen based on disassembly results.
2013-01-29 17:47:34 -08:00
Ben Vanik
d3054839b7
Now tracking register accesses for each function.
2013-01-29 13:07:59 -08:00
Ben Vanik
d1333db404
Disassembly for implemented control/memory instructions.
2013-01-29 01:55:03 -08:00
Ben Vanik
8a560e4cbe
Adding disassembler bits for alu.
2013-01-29 00:41:39 -08:00
Ben Vanik
775c97bf53
Beginning work on disassembler functions.
...
Ideally, this would be automated, but it's easier to just do it manually.
2013-01-28 21:37:03 -08:00
Ben Vanik
7b62fa96bd
Progress on ghetto memory allocator.
2013-01-28 21:36:03 -08:00
Ben Vanik
0fde6135a0
Fixing XO instruction decoding.
2013-01-28 15:31:46 -08:00
Ben Vanik
9ad6bb917f
RtlImageXexHeaderField stub.
2013-01-28 14:25:16 -08:00
Ben Vanik
6c4af5aa70
Kernel calls and variables now working and tracing better.
2013-01-28 12:36:39 -08:00
Ben Vanik
5c2060af72
Now running up to the first required kernel call.
...
If memory address validation is turned off it runs a lot further.
2013-01-28 03:03:37 -08:00
Ben Vanik
12d9c3d15e
First instruction executed in the test runner!
...
Fixes #7 .
2013-01-27 17:49:32 -08:00
Ben Vanik
bba99d4a22
Refactoring to allow for raw binary loading.
2013-01-27 12:48:10 -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
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
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
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
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
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