SEMU, Sudoer's EMU

SEMU

众所周知(并不),相比起C来说,Sudoer更喜欢C++。所以用C++写了个SEMU。

SEMU目前只有执行程序镜像的功能,简易调试器什么的还没做。

SEMU使用了一点点consteval函数来确保部分数据的编译期计算。

SEMU放弃了NEMU的“抄手册宏”,根据funt3、opcode、funt7来解析指令,换来了些微的性能提升。

而一个[[clang:always_inline]]注解则带来了一倍的性能提升……

相比NEMU,SEMU应该会有更高的执行效率。

在Spacemit k1@1.80GHz的CPU上,SEMU运行microbench ref最高可达511分,而native则是14881分。