Commit graph

1598 commits

Author SHA1 Message Date
Dillon Beliveau
26fea58bb6 srl, lb, bgtz, addi 2023-02-05 02:18:45 -08:00
Dillon Beliveau
9865dbc16a jit crashes on TLB MISS PC for now 2023-02-05 02:17:00 -08:00
Dillon Beliveau
b6d87f0412 sh, sd, lbu, lh, j, jal, addu, slt + propagate constants for check condition & set_cond_exit_pc 2023-02-05 00:32:51 -08:00
Dillon Beliveau
1ef1638734 beq 2023-02-05 00:02:20 -08:00
Dillon Beliveau
7374781840 addiu 2023-02-04 23:51:16 -08:00
Dillon Beliveau
9d1372058a fix block->run call 2023-02-04 23:50:31 -08:00
Dillon Beliveau
a19dd6c08d fix register allocation 2023-02-04 23:50:04 -08:00
Dillon Beliveau
f51bd073e6 fix stack alignment 2023-02-04 23:49:47 -08:00
Dillon Beliveau
06a7e55d4c Crash when unable to match address to region 2023-02-04 22:50:36 -08:00
Dillon Beliveau
027f87eebc Wrong type 2023-02-04 22:48:45 -08:00
Dillon Beliveau
c9e2318e88 sll, jalr, add 2023-02-04 21:23:29 -08:00
Dillon Beliveau
ecba2a94ac lhu, ld, jr 2023-02-04 19:55:38 -08:00
Dillon Beliveau
d4ddbd6378 Better (but very inefficient) register allocation by calculating lifetimes 2023-02-04 17:19:53 -08:00
Dillon Beliveau
96e18a966d Don't use RSP for register allocation 2023-02-04 17:17:16 -08:00
Dillon Beliveau
ce0d291596 compile ADD & TLB_LOOKUP 2023-02-04 17:16:24 -08:00
Dillon Beliveau
f4cf4ea39a Load guest reg set by another block 2023-02-04 16:15:25 -08:00
Dillon Beliveau
93a11f4252 flush guest regs at the end of the block 2023-02-04 16:01:39 -08:00
Dillon Beliveau
a995a900d6 temporary "dispatcher" in ASM - wrap block thunks in an ASM function 2023-02-04 15:25:43 -08:00
Dillon Beliveau
697434a2f4 check condition, set exit pc 2023-02-04 14:05:26 -08:00
Dillon Beliveau
0c6ccdd3ce compile IR_AND 2023-01-29 16:17:28 -08:00
Dillon Beliveau
b791cd691a begin work on x86_64 emitter 2023-01-29 16:00:21 -08:00
Dillon Beliveau
70ece93da6 TLB lookup IR instruction 2023-01-29 14:22:04 -08:00
Dillon Beliveau
b640c14287 asm_emitter -> v1_emitter 2023-01-29 14:20:30 -08:00
Dillon Beliveau
31b2edb26a minimum viable register allocation 2023-01-29 12:56:23 -08:00
Dillon Beliveau
0581de8f44 Only print when actually allocating a guest reg 2023-01-29 11:15:01 -08:00
Dillon Beliveau
e68656f665 Document functions in target_platform, add is_valid_immediate() 2023-01-29 11:10:08 -08:00
Dillon Beliveau
b3d8b285c3 Rework IR storage to use a linked list and pointers instead of indices 2023-01-29 11:08:47 -08:00
Dillon Beliveau
87d51c5c47 remove unused 2023-01-28 16:01:29 -08:00
Dillon Beliveau
3f3ef2622e Enable -Werror=switch 2023-01-28 16:01:17 -08:00
Dillon Beliveau
d343bb7370 shrink constants 2023-01-28 14:44:54 -08:00
Dillon Beliveau
392fa1379c fix for values mapped to registers, add todo comment 2023-01-28 14:13:36 -08:00
Dillon Beliveau
6f3bacb310 constant propagation and dead code elimination 2023-01-28 13:31:07 -08:00
Dillon Beliveau
1613bd46aa helpers for ir_emit_set_constant, documentation comments 2023-01-28 12:27:37 -08:00
Dillon Beliveau
b372cff267 abstract away common branch code 2023-01-28 12:15:29 -08:00
Dillon Beliveau
30b650ec19 don't print v%d= where it doesn't make sense 2023-01-28 12:07:20 -08:00
Dillon Beliveau
7a0f66431c More IR instructions, handle branches 2023-01-28 11:58:35 -08:00
Dillon Beliveau
aa3b9e10d7 print IR as string 2023-01-22 17:15:12 -08:00
Dillon Beliveau
6a224a1639 don't load extra zero constants 2023-01-22 15:26:16 -08:00
Dillon Beliveau
9e2f050ee9 andi 2023-01-22 14:30:25 -08:00
Dillon Beliveau
e08943d3e9 loads, refactor out common code between load/store 2023-01-22 14:27:08 -08:00
Dillon Beliveau
4a17f2e2d4 implement a few more instructions 2023-01-22 14:10:26 -08:00
Dillon Beliveau
850c93e292 missed a file 2023-01-16 15:34:08 -08:00
Dillon Beliveau
3e861d123f emit IR for LUI 2023-01-16 15:10:27 -08:00
Dillon Beliveau
3a1d5e952f framework out the IR emitter 2023-01-16 12:37:29 -08:00
Dillon Beliveau
c70b2feaed remove logging and crash 2023-01-14 16:00:04 -08:00
Dillon Beliveau
ae58d464f0 handle determining which instructions should be compiled into a block 2023-01-14 14:29:48 -08:00
Dillon Beliveau
1b66e11e43 refactor jit components I plan on rewriting to a new module 2023-01-07 14:40:33 -08:00
Dillon Beliveau
2dd8f0b60f dpc start should never change 2022-10-16 10:18:27 -07:00
Dillon Beliveau
bd4ff4a3c2 fix DIV and DDIV 2022-10-16 09:58:34 -07:00
Dillon Beliveau
6cdc45c460 Support capstone dependency on windows 2022-10-09 18:23:09 -07:00