2017-12-27 771 views
1

的规范指出,0x40在:Webassembly的含义是0x40字节?

为代表的空BLOCK_TYPE

伪类型现在即时通讯没有完全确定他们的意思是说。即使我的块不是空的,编译器会在操作码0x02后给我0x40。

是0x40类似于“void”吗?

回答

2

是的,这就像void。这个想法是块可以返回一个值(现在为i32,i64,f32,f64),或者根本没有值。类型在language types下列出,而block type限制它可以容纳的有效类型。这意味着指令可以消耗块推入执行堆栈的值,因此块在某种意义上类似于函数。你可能想要一个块而不是将一个值压入堆栈,因此void可能会有用。或者编译器可能根本不够聪明,无法使用块的属性,而是在某些情况下使用本地化。

最终,multi-value将被支持,它将允许函数以及块将多个值推送到堆栈上。

+0

这清除了一切。非常感谢你的伟大答案。多值支持非常好,我对所取得的进展印象深刻。 – Asperger

相关问题