2017-12-27 184 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