69 Commits

Author SHA1 Message Date
Hans-Kristian Arntzen
c2ad0063dc Lightning: remove buggy optimization pass. 2020-02-04 20:59:00 +01:00
Hans-Kristian Arntzen
5d67f413bf Optimize some common cases with $0 register. 2020-02-04 20:59:00 +01:00
Hans-Kristian Arntzen
3f636727ee Fix JALR and add a test. 2020-02-04 20:59:00 +01:00
Hans-Kristian Arntzen
9d9d56a6d5 Add a simple register allocator.
Makes use of all available registers as well.

Also adds a regression test for a Lightning bug where it elides a movslq
incorrectly.
2020-02-04 20:59:00 +01:00
Hans-Kristian Arntzen
b1b3839c7c Add mman for Win32 compat. 2020-02-01 17:36:29 +01:00
Hans-Kristian Arntzen
cbb3ac87ef Fixes for 32-bit build. 2020-02-01 16:49:04 +01:00
Hans-Kristian Arntzen
8aadcf6498 Minor cleanup. 2020-02-01 14:21:24 +01:00
Hans-Kristian Arntzen
fa1f04c7cb Revert "Actually include branch target for J/JAL."
This reverts commit 4dff8f04c93f402762d7fb8eab86668e2b9a8907.
2020-02-01 13:21:16 +01:00
Hans-Kristian Arntzen
f5b75acc68 Actually update hashmap. 2020-02-01 13:20:27 +01:00
Hans-Kristian Arntzen
537e9583ef Fix crash. 2020-02-01 12:58:27 +01:00
Hans-Kristian Arntzen
0dbbfc85dc Fix logic for checking if next instruction is a branch target. 2020-02-01 12:54:31 +01:00
Hans-Kristian Arntzen
c17453f0a4 Remove trace. 2020-02-01 12:34:55 +01:00
Hans-Kristian Arntzen
d62dbe8c12 Add some tracing. 2020-02-01 12:27:00 +01:00
Hans-Kristian Arntzen
84aaaaafcd Add test for jal into indirect delay slot. 2020-02-01 12:26:50 +01:00
Hans-Kristian Arntzen
4dff8f04c9 Actually include branch target for J/JAL. 2020-02-01 12:26:36 +01:00
Hans-Kristian Arntzen
9698453ae2 Always save cond register before calling. 2020-02-01 11:55:36 +01:00
Hans-Kristian Arntzen
c15d59e79a Disable hack. 2020-02-01 11:47:33 +01:00
Hans-Kristian Arntzen
69398b81a7 Add shifter tests. 2020-02-01 11:45:28 +01:00
Hans-Kristian Arntzen
f7515e7a5b Various debug things. 2020-02-01 03:17:14 +01:00
Hans-Kristian Arntzen
9c607ca490 Force indirect branches to become conditional. 2020-02-01 03:16:50 +01:00
Hans-Kristian Arntzen
d04dea28c5 Fix derpy SRLV. 2020-02-01 03:16:25 +01:00
Hans-Kristian Arntzen
de7812251f Remove debug spam. 2020-02-01 02:17:07 +01:00
Hans-Kristian Arntzen
afb7b5e3b9 Deal with case where delay clobbers indirect branch target. 2020-02-01 02:15:13 +01:00
Hans-Kristian Arntzen
aeba6b66c0 Fix SRL/SRLV. 2020-02-01 01:53:15 +01:00
Hans-Kristian Arntzen
07a02d26c1 Full disasm and register dumping ... 2020-02-01 01:42:56 +01:00
Hans-Kristian Arntzen
313f1761a5 Ifdefs for debug JIT. 2020-02-01 00:31:14 +01:00
Hans-Kristian Arntzen
a5a1a393c4 Minor cleanups. 2020-02-01 00:30:17 +01:00
Hans-Kristian Arntzen
99bec3ff2c Don't try to store register in jit_store_operation. 2020-02-01 00:13:43 +01:00
Hans-Kristian Arntzen
6ac7d0bd21 Fix disasm for LS ops. 2020-02-01 00:08:01 +01:00
Hans-Kristian Arntzen
9f273b91c8 Build cleanup. 2020-02-01 00:03:07 +01:00
Hans-Kristian Arntzen
362e7ab09a Make baked lightning the default. 2020-01-31 23:51:01 +01:00
Hans-Kristian Arntzen
fd50bf22e8 Hook up COP2 vector ops. 2020-01-31 23:45:46 +01:00
Hans-Kristian Arntzen
b39d147496 Basic test for COP2 LS.
Just need to test that the dispatch works correctly.
2020-01-31 23:17:26 +01:00
Hans-Kristian Arntzen
cba7dee893 Implement LWC2/SWC2. 2020-01-31 23:05:13 +01:00
Hans-Kristian Arntzen
707cf59f8f COP2 basic ops hooked up. 2020-01-31 22:53:36 +01:00
Hans-Kristian Arntzen
46c5ca54a1 Add basic COP0 test (MFC0/MTC0). 2020-01-31 22:21:55 +01:00
Hans-Kristian Arntzen
5cb32cd39b Hook up COP0. 2020-01-31 22:12:56 +01:00
Hans-Kristian Arntzen
b27e0eebcc Test illegal branch between block split. 2020-01-31 21:56:10 +01:00
Hans-Kristian Arntzen
b0030d7591 Add some branch delay tests between blocks. 2020-01-31 21:43:55 +01:00
Hans-Kristian Arntzen
7c5f38591f Test delay slots before break. 2020-01-31 21:31:40 +01:00
Hans-Kristian Arntzen
0b8b3fdfe7 Small cleanup. 2020-01-31 21:13:52 +01:00
Hans-Kristian Arntzen
7573becbe1 LW unaligned in branch delay test. 2020-01-31 21:11:19 +01:00
Hans-Kristian Arntzen
6b2bac5326 More branch instructions. 2020-01-31 21:03:52 +01:00
Hans-Kristian Arntzen
9349cd300d Add JR test. 2020-01-31 20:59:04 +01:00
Hans-Kristian Arntzen
e9e55d7742 Add some branch tests. 2020-01-31 20:51:38 +01:00
Hans-Kristian Arntzen
290e111df8 Add some complicated test cases for impossible branch delays. 2020-01-31 17:58:49 +01:00
Hans-Kristian Arntzen
a0448544b9 Add lw/sb/sh/sw tests with and without alignment. 2020-01-31 14:47:00 +01:00
Hans-Kristian Arntzen
940355e451 Add unaligned lh/lhu test. 2020-01-31 14:24:00 +01:00
Hans-Kristian Arntzen
02dd79980c Add lb/lbu/lh/lhu test (aligned). 2020-01-31 14:15:33 +01:00
Hans-Kristian Arntzen
71237ada02 Add lui test. 2020-01-31 14:05:34 +01:00