Commit Graph

1432 Commits

Author SHA1 Message Date
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 1ad0bb7843 cmp/cmpi/cmpl/cmpli.
May not be right.
2013-05-24 19:52:00 -07:00
Ben Vanik 6cd8495ea2 extsbx. 2013-05-24 19:45:48 -07:00
Ben Vanik 8976f1b046 subfx + subficx. 2013-05-24 19:16:01 -07:00
Ben Vanik 69ebedb43f addic + subfex. 2013-05-24 19:10:54 -07:00
Ben Vanik dc40f28795 addx and switching commenting style on the rest of the unported instrs. 2013-05-24 18:49:14 -07:00
Ben Vanik 1e67547a6b Fixing conditional branch logic. 2013-05-24 18:44:32 -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 7e3268621d Optimizing the mr case. 2013-05-24 17:59:01 -07:00
Ben Vanik 748bfe509f Handling null ptr in NtFreeVirtualMemory. 2013-05-24 17:33:57 -07:00
Ben Vanik 21b0d25131 Fixing memory address truncation. 2013-05-24 17:08:12 -07:00
Ben Vanik fcf478ba55 Log all incoming registers on each instruction execute. 2013-05-24 16:53:27 -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 1b833b6789 Removing libjit backend. 2013-05-23 18:05:03 -07:00
Ben Vanik bedf86d259 Adding 'x64' backend.
Does not compile.
2013-05-23 18:04:12 -07:00
Ben Vanik 86002b2f44 Removing old llvm cruft. 2013-05-23 17:51:03 -07:00
Ben Vanik 63cee87420 Removing library loader, as it's not used. 2013-05-23 17:50:05 -07:00
Ben Vanik 57b486c4ad Removing libjit, because it is pretty terrible. 2013-05-23 17:48:01 -07:00
Ben Vanik eee856be04 Tweaking things again. Now not getting very far. Sigh. 2013-05-23 15:52:57 -07:00
Ben Vanik f08e80efbc Fixing calling into code. Interpreter can now be used. 2013-05-23 15:44:45 -07:00
Ben Vanik 9487fa027c libjit doesn't encode mov with imm64 offsets, fixing. 2013-05-23 13:55:09 -07:00
Ben Vanik 70a9a1053e The previous truncation was useless. 2013-05-23 13:16:39 -07:00
Ben Vanik 89672e111d Optimizing memory accesses a bit by letting libjit use relative addressing. 2013-05-23 11:46:26 -07:00
Ben Vanik fc8eb3d40a Adding disassembly to traces and bumping libjit. 2013-05-23 11:39:29 -07:00
Ben Vanik 730dba4aea Adding addzex. 2013-05-23 02:13:04 -07:00
Ben Vanik d6f2a0b3f0 Adding --trace_branches.
Simple output right now, can always be enhanced.
2013-05-23 01:31:41 -07:00
Ben Vanik 4495637616 Making sure shim calls are cdecl. 2013-05-23 01:04:14 -07:00
Ben Vanik 6bde04de26 Flushing logging. 2013-05-23 00:26:55 -07:00
Ben Vanik 1a01d365b5 Making code dumps conditional on --log_codegen 2013-05-22 22:01:34 -07:00
Ben Vanik fcb66660c0 (partial) addx and logging compiled addresses. 2013-05-22 21:53:21 -07:00
Ben Vanik 5cb8cf2630 Hacky ALU ops. Need overflow checks. 2013-05-22 21:14:16 -07:00
Ben Vanik 9ed911cdad Fixing comparisons and disabling OutputDebugString logging. 2013-05-22 21:11:27 -07:00
Ben Vanik 2d01dced5a Adding back invalid instruction logs. 2013-05-22 20:58:48 -07:00
Ben Vanik f2c16c24f3 Basic control instructions (no indirection branches yet). 2013-05-22 20:15:04 -07:00
Ben Vanik 1bcb3e8f92 Many more ALU instructions. 2013-05-22 18:51:06 -07:00
Ben Vanik 64b619023d Adding back in quite a few instructions. 2013-05-22 18:03:43 -07:00
Ben Vanik c0dd60bde8 Adding memory access/etc.
Needs byte swapping.
2013-05-22 15:02:26 -07:00
Ben Vanik 7227ba2693 Setting up register fill/spill. 2013-05-22 13:37:44 -07:00
Ben Vanik 16d2b73a73 Main codegen loop now running through instructions. 2013-05-22 13:10:07 -07:00
Ben Vanik dad99769cb Prepping for basic block generation. 2013-05-22 11:53:52 -07:00
Ben Vanik 33e2bc01ee Kernel call thunks and cleanup on exports. 2013-05-22 11:30:53 -07:00
Ben Vanik 37f93d2974 Calling to/from native works! 2013-05-22 11:13:27 -07:00
Ben Vanik a064e68621 Fixing more warnings. 2013-05-21 16:19:11 -07:00
Ben Vanik 720651ba9e Removing wslay socket support in prep for switch to mongoose.
Work on #21.
2013-05-21 16:16:33 -07:00
Ben Vanik 1ec06bd7d0 Tweaking compile options and switching back to VS2010. 2013-05-21 16:08:56 -07:00
Ben Vanik 85804f7415 Initial libjit skeleton.
Not currently generating instructions, but most of the flow is right up to
that point. A lot of work required to refactor the emitter, but wanted to
get this checked in.
2013-05-21 15:36:58 -07:00
Ben Vanik 94e3e592dd Making disassembly much faster by moving string processing to only the
dump path.
2013-05-19 19:32:55 -07:00
Ben Vanik 7d93795c10 Fixing Windows compilation errors. 2013-05-19 09:29:31 -07:00
Ben Vanik 1ce68ca7fe Removing LLVM submodule and build information.
Code is still present until transitioned over to libjit.
2013-05-19 09:29:22 -07:00
Ben Vanik 0aa7d1ec05 Adding libjit.
Removing some old xethunk cruft.
2013-05-19 09:23:50 -07:00
Ben Vanik b018b6fe56 Broken, incomplete, but need to move forward with rewrite. 2013-04-21 12:34:20 -07:00
Ben Vanik 4987147055 Moving disasm functions to ppc/. 2013-03-30 02:01:33 -07:00
Ben Vanik 85bdbd24d1 In-progress work: refactoring PAL not to be instanced.
This removes a lot of useless passing around of the PAL object.
2013-03-29 05:07:32 -07:00
Ben Vanik c46093266e Tracking code low/high addresses per module. 2013-02-24 11:45:16 -08:00
Ben Vanik 690e59ca3e Fixing OSX build. 2013-02-10 12:38:50 -08:00
Ben Vanik bfda368ab5 Compiling on linux. 2013-02-10 12:21:56 -08:00
Ben Vanik 3cae7ed714 Converting logging to ASCII and other Windows fixes. 2013-02-09 08:05:39 -08:00
Ben Vanik 338b890ef5 Fixing VC++ warnings and errors. 2013-02-08 22:07:38 -08:00
Ben Vanik c1e2119db4 Moving socket stuff to core/.
Stubbed win32 methods.
2013-02-06 22:55:18 -08:00
Ben Vanik 2c42ea909b Removing the dependency on OpenSSL, as it sucks. 2013-02-06 21:47:05 -08:00
Ben Vanik 7435a327f7 Windows compat fixes. 2013-02-06 10:04:34 -08:00
Ben Vanik 2521d64615 Fixing decryption key choice to be more robust. 2013-02-06 03:07:57 -08:00
Ben Vanik da23c00d31 Simple thread PAL type (until core/ is rewritten). 2013-02-06 02:44:15 -08:00
Ben Vanik 88431eadce Screw convention; moving include files alongside source files.
They now will show up in xcode/etc.
2013-02-06 02:19:50 -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