【问题标题】:Webassembly meaning of the 0x40 byte?Webassembly 0x40 字节的含义?
【发布时间】:2018-06-08 10:37:34
【问题描述】:

规范说 0x40 是:

表示空块类型的伪类型

现在我不完全确定他们的意思。即使我的块不是空的,编译器也会在操作码 0x02 之后给我 0x40。

0x40 是否类似于“void”?

【问题讨论】:

    标签: webassembly


    【解决方案1】:

    是的,就像void。这个想法是块可以返回一个值(i32i64f32f64 现在),或者根本没有值。这些类型在language types 下列出,block type 限制了它可以容纳的有效类型。这意味着指令可以使用块推送到执行堆栈上的值,因此块在这个意义上类似于函数。您可能希望块 not 将值压入堆栈,因此使其成为 void 可能很有用。或者编译器可能根本不够聪明,无法使用块的该属性,而是在某些情况下使用局部变量。

    最终,multi-value 将被支持,这将允许函数和块将多个值压入堆栈。

    【讨论】:

    • 这样就搞定了。再次非常感谢您的出色回答。多值支持非常好,我对所取得的进展印象深刻。
    猜你喜欢
    • 2012-09-08
    • 1970-01-01
    • 2023-01-07
    • 2016-10-20
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2010-11-12
    • 2020-05-25
    相关资源
    最近更新 更多