Commit Graph

106 Commits

Author SHA1 Message Date
d3e8af85a6 Add the files and decode logic for RVA 2026-01-12 17:25:02 +01:00
3451a8227c Remove RamVersionClaim::reset as ive figured out it wont be needed 2026-01-09 20:23:11 +01:00
d1b4cc7b56 Add some documentation in the cli help output 2026-01-06 23:14:37 +01:00
9861187fa6 Implement the memory version system that will be necessary for LR/SC 2026-01-06 21:50:47 +01:00
07e755340e remove get_atomic_(d)word because its not used yet and the idea for how atomics will be done will have to be reworked 2026-01-02 16:21:20 +01:00
ceb7f2f172 Apply some clippy-suggested fixes 2026-01-02 12:55:42 +01:00
21fb6cbc8b Switch from std::mpsc channels to crossbeam 2026-01-02 12:44:50 +01:00
bbc9e0b9ff 2026! Updating LICENSE file now and individual file comments when those files are updated 2026-01-01 09:15:25 +01:00
7fcfc031ef Stop rust-analyzer from complaining about the big endian host error 2025-12-31 13:19:04 +01:00
21a8479ce9 Make MMIO devices not have control of the address of exceptions 2025-12-31 13:16:32 +01:00
09fe12f516 Change some ordering in core.rs and deduplicate core command handling 2025-12-31 09:33:14 +01:00
0f0e844223 Finish RV64M 2025-12-30 20:53:57 +01:00
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
6a0e5e63c1 Implement DIV 2025-12-30 17:27:42 +01:00
e5c5312566 Implement MUL 2025-12-30 16:56:09 +01:00
9a9bef7dd7 Remove consts.rs and just use plain types 2025-12-28 12:01:39 +01:00
8024af6b13 Implement ECALL and EBREAK, the final RV64I instructions! 2025-12-27 21:47:22 +01:00
5c008bfc04 Add exception values (what will go in mtval/stval) 2025-12-27 21:33:39 +01:00
b5d36b7969 Initial FENCE implementation 2025-12-27 21:03:24 +01:00
970c1adcb0 Add checks to make sure that ram has a size that is a multiple of 8 2025-12-27 20:52:32 +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
a64fcaa3b5 Make execload respect the static ram start 2025-12-26 19:32:55 +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
75e843f5f9 Make branches macros and implement all of them 2025-12-26 16:06:30 +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
44394b3d19 Update README to mention ELF support 2025-12-24 14:11:29 +01:00
66c63ab63c Add a default implementation for the memory device interface that just returns access faults 2025-12-24 14:06:16 +01:00
09d9064372 EXCEPTION SYSTEM (initial version - may change later) 2025-12-24 13:56:41 +01:00
3f789442c0 some linker script updates to work even more properly for newlib i think 2025-12-24 11:42:55 +01:00
96c2cbf7ae remove unused imports in main.rs 2025-12-23 20:04:14 +01:00
8ed4845d58 ADD ELF SUPPORT 2025-12-23 19:56:42 +01:00
36faa1e39c Add license headers to files missing them 2025-12-23 19:22:11 +01:00
43bae12ea0 Comment out the unused 'Pause' instruction result 2025-12-23 18:46:38 +01:00
0c6a540a85 Implement SRLI 2025-12-23 18:42:50 +01:00
23392a55df Implement SH 2025-12-23 18:31:04 +01:00
f38114dbd7 Remove some debug messages i forgot 2025-12-23 11:01:28 +01:00
c6da147d50 Implement BLT 2025-12-23 09:51:53 +01:00
643a39c24a Fix s-type immediate decoding 2025-12-23 09:51:32 +01:00
1b409cd14e Improve error messaging 2025-12-23 09:51:09 +01:00
976bd688b0 Remove an unused import in main.rs 2025-12-23 08:57:43 +01:00
0ac363e203 Implement LW 2025-12-22 22:48:57 +01:00
7a22570a0f Improve the debug messages when invalid instructions are found (again) 2025-12-22 22:46:45 +01:00
2b5eb96187 Implement BLTU 2025-12-22 21:17:38 +01:00
be1b1b9fe6 Implement LH 2025-12-22 21:15:24 +01:00
5cbaf2dc66 Implement BGEU 2025-12-22 20:08:16 +01:00
ae57cdc691 Improve the debug messages when invalid instructions are found 2025-12-22 19:57:33 +01:00
bac68d7118 Pull out memory access instructions from rvi.rs to their own file 2025-12-22 19:51:21 +01:00