Open
Description
libriscv is a compact yet comprehensive RISC-V userspace emulator library crafted for effortless embedding and extensive adaptability. It boasts a high-performing interpreter and an experimental binary translator, driven by TinyCC. When binary translation is activated, libtcc seamlessly integrates into the RISC-V emulator, taking on the role of the compiler for binary translation.
Interestingly, both libriscv and rv32emu share some common concepts and objectives. It would be valuable to engage in a comparative analysis to explore aspects such as interpretation and binary translation performance, techniques for ensuring secure sandboxed execution, and strategies for implementing userspace RISC-V emulation.
Expected outcomes:
- Perform a performance comparison between libriscv and rv32emu, focusing on both interpreter and binary translation modes, evaluating each separately.
- Compile a list of techniques employed in libriscv that warrant examination and potential adoption in rv32emu. Subsequently, create corresponding GitHub issues to track this process.
Reference:
- Using C++ as a game engine scripting language, Part 1
- Using C++ as a scripting language, Part 2
- Using C++ as a scripting language, Part 3
- Using C++ as a scripting language, Part 4
- Using C++ as a scripting language, Part 5
- Using C++ as a scripting language, Part 6
- Using C++ as a scripting language, Part 7
- Using C++ as a scripting language, Part 8
- Using C++ as a scripting language, Part 9
- Using C++ as a scripting language, Part 10
- Using C++ as a Scripting Language, part 11