Commit Graph

25 Commits

Author SHA1 Message Date
5a383956c9 Improve exception dumps and general debug info, make the emulator capable of running the riscv ISA tests, and perform some general fixes i found while making it pass the tests for RV64I 2025-12-30 20:18:23 +01:00
9a9bef7dd7 Remove consts.rs and just use plain types 2025-12-28 12:01:39 +01:00
5c008bfc04 Add exception values (what will go in mtval/stval) 2025-12-27 21:33:39 +01:00
6a3920895b Relicense to BSD 2-Clause to align better with the RISC-V community 2025-12-27 12:44:55 +01:00
67406a9c48 Fix some warnings 2025-12-27 11:55:19 +01:00
9f8e9ec380 Implement a GDB stub and fix another huge issue in S-type immediate decoding 2025-12-27 11:48:36 +01:00
34034dd5db Make macros for R/I-type operations and use them to implement basically every single one i think 2025-12-26 18:14:32 +01:00
528b519ce9 (BIG CHANGE) memory handling has changed, MMIO is now a 2 level page table, misaligned access supported, addresses not internally split to page and offset immediately, all load/store instructions implemented. Might still have bugs 2025-12-26 14:20:27 +01:00
6d9efb7eb8 Small refactor in exception handling in core.rs 2025-12-24 16:14:54 +01:00
09d9064372 EXCEPTION SYSTEM (initial version - may change later) 2025-12-24 13:56:41 +01:00
43bae12ea0 Comment out the unused 'Pause' instruction result 2025-12-23 18:46:38 +01:00
1b409cd14e Improve error messaging 2025-12-23 09:51:09 +01:00
7a22570a0f Improve the debug messages when invalid instructions are found (again) 2025-12-22 22:46:45 +01:00
ae57cdc691 Improve the debug messages when invalid instructions are found 2025-12-22 19:57:33 +01:00
e00103375d Fix page offset miscalculation in instruction fetch 2025-12-22 18:28:31 +01:00
7177633477 WHY WAS I USING S-TYPE IMMEDIATE IN LD (also add some more debugging info on an exception) 2025-12-22 18:00:15 +01:00
25c3b9f5e2 Make a dedicated function for advancing the PC by one instruction 2025-12-21 16:00:54 +01:00
ac9506a1a7 (BIG CHANGE) Switch instruction identification/execution to use a plain match tree, should improve performance by quite a bit 2025-12-21 12:07:12 +01:00
e2d521bbe7 Add license/copyright notices to top of each source file (where applicable) 2025-12-01 22:06:13 +01:00
6bd31e73fb some debugging stuff and SECOND OPCODE! 2025-10-10 19:01:04 +02:00
361b36fbd1 Make sure unsupported/illegal instructions are caught 2025-10-07 20:16:27 +02:00
dbd022f9c9 Make fields and register access functions of Core accessible to the rest of the emulator 2025-10-07 20:12:09 +02:00
52952840aa I guess its a working execution loop? 2025-10-04 14:07:42 +02:00
bb0007707c Swap out execution status for instructions returning an InstructionResult 2025-10-03 13:28:02 +02:00
3163b43fa4 base core state & instruction decoder 2025-09-27 21:43:10 +02:00