用 SLJIT 为栈式虚拟机实现 JIT 编译器

2025-09-19

作者尝试使用 SLJIT 为其基于栈的 uxn 虚拟机实现 JIT 编译器。起初效果不佳,因为 uxn 的动态跳转频繁导致生成的代码频繁返回到 trampoline,降低了效率。通过一系列优化,包括改进调用约定、栈缓存和寄存器分配策略等,最终实现了 30-46% 的性能提升。文章详细阐述了优化过程和遇到的挑战,以及相应的调试技巧,对于学习 JIT 编译和优化栈式虚拟机具有参考价值。