Skip to content
A cross-platform RISC-V interpreter that implements the RV32IMA instruction set.
Rust C Makefile
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bench
flatrv-interp
src
.gitignore
Cargo.toml
LICENSE
README.md

README.md

FlatRv

A cross-platform RISC-V interpreter that implements the RV32IMA instruction set.

Inspired by wasm3, FlatRv depends on compiler optimizations to convert tail calls into one single indirect branch, therefore preserving Rust's safety guarantee without giving up performance. FlatRv as an interpreter is very efficient. It takes ~3.5 seconds on an Intel i9-9900K CPU to calculate fib(40) with on-the-fly instruction decoding, compared to ~0.8 seconds on QEMU (RV32, TCG JIT) and ~2 seconds on wasm3 (WebAssembly, interpreter with a transforming pass).

Supports no_std.

You can’t perform that action at this time.