Open
Description
Current porting status
Mono RISCV currently has implemented some basic instruction generation, stack allocation, and error handling. It can run some of the programs located in dotnet/samples. The list of runnable programs can be found at https://github.com/Xinlong-Wu/runtime/blob/riscv-jit-rv64/RISCV64-PORTING.md
The pr's that have been merged so far (2023/12/08) are:
- [RISC-V] Port Mono for RISC-V 64 Arch (1/3) lp64d ABI #83714
- [RISC-V] Port Mono for RISC-V 64 Arch (2/3) thunk & tramponlie #83715
- [RISC-V] Port Mono for RISC-V 64 Arch (3/3) IL Lowering & Outputting #83716
- [mono] [RISC-V] re-implement floating point arithmetic without r4fp #84470
- [Mono][RISC-V] emit mul inst instead of emulated mul #85445
- [Mono] [RISCV] Fix abi issues (Monthly pr) #88649
- [RISCV] Store 2*XLEN ValueType half in Reg and half on stack when only A7 available #90072
- [RISC-V] Fix the order of parameters stored on the stack #96106
Futhure
- Pass all regression tests as far as possible for robust CI testing
- Mono RISC-V is currently focused on implementing the riscv64imadf extension. Trying to sound instruction generation under different extensions.
- Optmise generated code by Peephole Optimization, support C ext
- implement vector intrinsic
- Mono RISCV can be installed by
dotnet-install.sh
- Native compile Mono RISCV and library at RISC-V computer
- Running graphical programs on RISC-V, i.e. Stardew Valley