Commit Graph

48 Commits

Author SHA1 Message Date
Ben Vanik
26ec76ef35 A lot of progress on altivec instructions.
Some bad results, still, and some instructions are not decoding right.
2013-09-29 21:05:48 -07:00
Ben Vanik
526b1a85b7 Simple altivec loads/stores. 2013-09-28 23:14:43 -07:00
Ben Vanik
3e0d9af57e Placeholders for memory access breakpoints. 2013-09-25 20:13:43 -07:00
Ben Vanik
d5b8a2091a Switching tracing order to prevent skipping traces of branch instructions. 2013-09-06 23:21:08 -07:00
Ben Vanik
6f602d120a Adding thread ID to trace lines and cleaning up their formatting. 2013-06-30 06:09:08 -07:00
Ben Vanik
ef0032ecff Wiring up register read/write from JIT -> GPU. 2013-05-31 21:23:26 -07:00
Ben Vanik
78086684c6 Now tracking constant values for most operations.
This will make it easier to enable memory access optimizations and hacks.
Not all operations are updating the constant registers, only those that
are likely to participate in constant value building. Constant values are
cleared on every basic block, though this may be too zealous it prevents
weird fall-through cases.
2013-05-30 22:50:32 -07:00
Ben Vanik
f307bc9eb1 Adding --target= and --trace_registers flags.
--target=[xex|iso] makes it possible to specify the thing to run from a
flagfile.
2013-05-29 21:45:54 -07:00
Ben Vanik
82159b2b9d Adding lfd. 2013-05-26 07:19:09 -07:00
Ben Vanik
9d63eb7499 Fixing condition updates for unsigned compares. 2013-05-26 04:21:07 -07:00
Ben Vanik
5d83465ce4 Fixing branches via the indirection block.
Also disabling the local indirection optimization until it's implemented.
2013-05-26 03:59:32 -07:00
Ben Vanik
22f186d713 Better asserts/checks around bad function addresses. 2013-05-26 03:26:49 -07:00
Ben Vanik
7febbe0f86 Fixing <8b memory accesses. 2013-05-26 00:44:20 -07:00
Ben Vanik
4073028188 Very basic, super slow, nasty indirection. 2013-05-25 20:32:58 -07:00
Ben Vanik
de85adea2e divwx/divwux. 2013-05-25 02:49:44 -07:00
Ben Vanik
ed401449b7 Only create the shared return block if required. 2013-05-25 00:45:16 -07:00
Ben Vanik
da62ec56f9 Adding the ret required for tail calls. 2013-05-25 00:41:01 -07:00
Ben Vanik
fb22aeb5ac Fixing assertion warnings from asmjit. 2013-05-25 00:40:30 -07:00
Ben Vanik
9883f32fb7 Fixing logger initialization when codegen logging is disabled. 2013-05-24 21:49:03 -07:00
Rick Gibbed
ba718de434 Further corrections on cr checks. 2013-05-24 21:34:03 -07:00
Ben Vanik
1354b9975f Adding basic branch indirection, which doesn't work but is ready to do so. 2013-05-24 21:18:30 -07:00
Ben Vanik
c6ed7ff9cf Fixing cr5+ checks. 2013-05-24 20:48:04 -07:00
Ben Vanik
346a27ddf8 Trying again to fix compares. 2013-05-24 20:40:00 -07:00
Ben Vanik
e7556a09f8 Fixing bad or during cr0 update - need to be overwriting. 2013-05-24 20:26:06 -07:00
Ben Vanik
68f1eb7f69 Fixing carry and compare flags. 2013-05-24 20:20:18 -07:00
Ben Vanik
97b0e2aa3d Fixing comparison between two gpvars. 2013-05-24 20:09:11 -07:00
Ben Vanik
5e66f7b04b Adding a bunch of nops around trace calls.
5 before, 2 after (so it's easy to see what goes with what).
2013-05-24 19:59:51 -07:00
Ben Vanik
69ebedb43f addic + subfex. 2013-05-24 19:10:54 -07:00
Ben Vanik
2ab01af0bd Breaking on indirect branches. 2013-05-24 18:34:08 -07:00
Ben Vanik
692f85ed4f Very, very basic branching. Most compares not yet implemented. 2013-05-24 18:28:52 -07:00
Ben Vanik
21b0d25131 Fixing memory address truncation. 2013-05-24 17:08:12 -07:00
Ben Vanik
15cfbd3736 The various _ptr helpers in asmjit are useless. 2013-05-24 16:34:24 -07:00
Ben Vanik
e6320dada5 Most of the memory instructions.
Not sure this is correct, as it crashes pretty early on.
2013-05-24 16:16:39 -07:00
Ben Vanik
e724fe3e60 Adding some ALU instructions. 2013-05-24 14:21:39 -07:00
Ben Vanik
8965caa833 Adding an option to disable register caching.
Until things work I'm not going to bother with that optimization.
2013-05-24 11:18:50 -07:00
Ben Vanik
b8323c3055 Preparing some control instructions for proper emitting. 2013-05-24 03:51:58 -07:00
Ben Vanik
bf8f068fa5 Disabling tail calls. 2013-05-24 03:29:21 -07:00
Ben Vanik
2242778fff Fixing trace calls. Disabling logging of redirector. 2013-05-24 02:42:41 -07:00
Ben Vanik
eb9b9b0321 Adding bl (unconditional only). 2013-05-24 02:21:12 -07:00
Ben Vanik
2153256109 Fixing line endings. 2013-05-24 01:41:02 -07:00
Ben Vanik
605d66ecf6 Adding the first instructions, mfspr/mtspr. 2013-05-24 01:37:02 -07:00
Ben Vanik
71bd3c799f Local variables setup and spilling/filling. 2013-05-24 00:50:56 -07:00
Ben Vanik
376226c59a Adding basic block labels.
Probably correct.
2013-05-24 00:06:46 -07:00
Ben Vanik
a81babac1e Adding comments to the disasm and implementing kernel calls. 2013-05-23 23:39:48 -07:00
Ben Vanik
74ae66aa0a Cleanup and tracing. 2013-05-23 23:22:27 -07:00
Ben Vanik
d7d0b94aab x64 emitter now generating redirection blocks and patching them up. 2013-05-23 22:09:04 -07:00
Ben Vanik
12444f6305 Compiles, runs, and hangs in normal wait. 2013-05-23 18:46:09 -07:00
Ben Vanik
bedf86d259 Adding 'x64' backend.
Does not compile.
2013-05-23 18:04:12 -07:00