WebAssembly:复制栈顶
Posted
技术标签:
【中文标题】WebAssembly:复制栈顶【英文标题】:WebAssembly: Duplicating the top of stack 【发布时间】:2018-08-09 13:18:56 【问题描述】:没有dup
指令,可以让我复制堆栈顶部。我可以使用哪个指令序列来复制这种行为?
【问题讨论】:
您能否提供更多背景信息?为什么要复制堆栈值?通常线性内存用于程序/工作内存而不是堆栈 经常出现使用计算值两次或更多次的必要性。我的直觉是使用内存要慢得多,也太复杂了。 【参考方案1】:Wasm 没有堆栈杂耍原语,因为它有局部变量。要复制操作数堆栈的顶部,您需要定义正确类型的局部变量。然后你可以例如使用以下指令序列:
(tee_local $x) (get_local $x)
$x
是你的变量。
【讨论】:
以上是关于WebAssembly:复制栈顶的主要内容,如果未能解决你的问题,请参考以下文章
WebAssembly Heapf64.set 的文档在哪里