我有以下 Wasm 函数,我想了解它是某种 webgl 片段着色器:
func $frag_shader (param i32)
(local i32 i32 i32 i32 i32)
global.get 0
i32.const 32
i32.sub
local.tee 1
global.set 0
local.get 1
i32.const 16
i32.add
i32.const 1049267
i32.const 85
call 23
local.get 1
i32.load offset=16 align=4
local.set 2
block
block
block
block
local.get 1
i32.load offset=20 align=4
local.tee 3
local.get 1
i32.load offset=24 align=4
local.tee 4
i32.ne
br_if 0
local.get 2
local.set 5
local.get 3
local.set 4
br 1
end
local.get 3
local.get 4
i32.lt_u
br_if 1
block
local.get 4
br_if 0
i32.const 0
local.set 4
i32.const 1
local.set 5
local.get 3
i32.eqz
br_if 1
local.get 2
call 61
br 1
end
local.get 2
local.get 3
i32.const 1
local.get 4
call 52
local.tee 5
i32.eqz
br_if 2
end
local.get 1
i32.const 8
i32.add
local.get 5
local.get 4
call 49
local.get 0
local.get 1
i64.load offset=8 align=8
i64.store offset=0 align=4
local.get 1
i32.const 32
i32.add
global.set 0
return
end
i32.const 1049136
call 25
unreachable
end
local.get 4
i32.const 1
i32.const 0
i32.load offset=1050388 align=4
local.tee 1
i32.const 1
local.get 1
select
call_indirect 4
unreachable
end
我熟悉javascript,但这对我来说是无法理解的。找出如何将其转换为更“友好”的 javascript 的最佳选择是什么?
有没有工具可以帮助转换为更好的格式?或者有没有更容易理解的方法?