It doesn't use JIT but for small programs it was faster than the other simulators I compared with. It also has page functionality for simulating MMIO without performance drop.
Drawback is that I never finished RV64 support, although it's mostly ready to go. It has full RV32IMAC as well as most floating point instructions. I imagined that for a small device RV32 would be plenty. But I guess we will see, as I want to get my hands on a RISC-V board that is like Raspberry Pi.
You can configure it with the extensions your system will support. The minimal is RV32I and RV64I. It will be full-length instructions which are easy to parse and no extras.
[+] [-] fwsgonzo|6 years ago|reply
It doesn't use JIT but for small programs it was faster than the other simulators I compared with. It also has page functionality for simulating MMIO without performance drop.
Drawback is that I never finished RV64 support, although it's mostly ready to go. It has full RV32IMAC as well as most floating point instructions. I imagined that for a small device RV32 would be plenty. But I guess we will see, as I want to get my hands on a RISC-V board that is like Raspberry Pi.
[+] [-] antsoul|6 years ago|reply
https://media.ccc.de/v/36c3-10549-linux_on_open_source_hardw...
[+] [-] haberman|6 years ago|reply
[+] [-] fwsgonzo|6 years ago|reply
You can configure it with the extensions your system will support. The minimal is RV32I and RV64I. It will be full-length instructions which are easy to parse and no extras.
./configure --prefix=$HOME/riscv --with-arch=rv32i --with-abi=ilp32
I'm sure you can build a C standard library with these options as well, so you won't be as limited as you think.
System calls are done through the ECALL instruction, and while it's mandatory, you don't really have to implement it.