我用C#制作了一个带有JIT编译器的RISC-V虚拟机
原文英文,约1200词,阅读约需5分钟。发表于: 。I had the week off so I decided to experiment with making a RISC-V VM, since I've had an interest in RISC-V for a while now. I started off watching this playlist of videos...
作者利用休假时间尝试制作了一个RISC-V虚拟机,并通过观看视频教程和下载RISC-V的GCC编译器进行了学习和实践。他实现了RV32I,并且可以很容易地切换到64位。他花了很多时间解码操作码,并决定将每个指令的四个部分存储在内存中,以便预处理指令。他编写了一些测试并修复了一些错误,然后开始实现解释器。他还添加了一个JIT编译器,通过监视分支指令的执行次数来决定是否进行JIT编译。JIT编译器创建了类似C#代码的代码,并将其动态编译为函数。最后,他还实现了C标准库和CSR寄存器,并对CSR寄存器进行了初步实现。作者对这个项目的未来还没有明确的计划。