ISSUE: 支持JIT
并不是很紧急,因为目前性能其实没有出现瓶颈
-
master里准备了page3的两个flag用于指示编译器针对函数生成jit代码
-
编译器将会尝试jit化所有可以被jit的函数,前提是:
- jit支持的指令覆盖当前函数
- 函数只调用了native函数或jit函数,不支持从jit化函数回调非jit函数(因为run的栈开销可能很大,未来优化)
-
需要额外做以下调整
- calln指令完全转变为9字节指令,不再区分5字节版本(为了方便重设jit地址)
- jit化的函数其签名应该是 wo_integer_t (wo::vmbase*, wo::value*, size_t)
- 被jit化的函数其常量也将改变成 void* 类型,方便通过call指令直接调用到jit版本上