【问题标题】:WebAssembly: Duplicating the top of stackWebAssembly:复制栈顶
【发布时间】:2018-08-09 13:18:56
【问题描述】:

没有dup 指令,可以让我复制堆栈顶部。我可以使用哪个指令序列来复制这种行为?

【问题讨论】:

  • 您能否提供更多背景信息?为什么要复制堆栈值?通常线性内存用于程序/工作内存而不是堆栈
  • 经常出现使用计算值两次或更多次的必要性。我的直觉是使用内存要慢得多,也太复杂了。

标签: bytecode webassembly


【解决方案1】:

Wasm 没有堆栈杂耍原语,因为它有局部变量。要复制操作数堆栈的顶部,您需要定义正确类型的局部变量。然后你可以例如使用以下指令序列:

(tee_local $x) (get_local $x)

$x 是你的变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 2023-03-11
    • 2013-02-17
    • 2020-06-06
    • 2021-06-20
    • 1970-01-01
    相关资源
    最近更新 更多