Lan*_*ard 5 firefox google-chrome v8 webassembly
在WebAssembly的这篇文章中,它说:
......我们还要谈谈另外一件事:堆叠机器.虽然浏览器将其编译为更高效的东西 ......
想知道浏览器如何使堆栈机器更有效率,它使用什么样的技术.
And*_*erg 11
它将其编译成寄存器的使用.
考虑Wasm操作数堆栈的一种方法是它只是一组(无限)虚拟寄存器.但是,不是显式地引用这些寄存器,而是每条指令隐式地引用堆栈中的某些槽.但是由于类型检查和验证,编译器始终在程序中的任何位置静态地知道堆栈上的值的数量和类型.
因此,生成的代码绝对需要兑现栈,但可直接地分配每一堆栈槽,即,每个虚拟寄存器,以真实的硬件寄存器(或溢出他们交给以通常的方式在硬件堆栈时寄存器分配用完寄存器) .
Wasm是堆栈机器而不是注册机器的唯一原因是代码紧凑性.描述寄存器使用是一种特别紧凑的方式.
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |