V8 JavaScripti mootori arendajad
Dekompilaator
Näiteks algne C-funktsioon, mis on kompileeritud wasm-is
typedef struct { float x, y, z; } vec3;
float dot(const vec3 *a, const vec3 *b) {
tagastab a->x * b->x +
a->y * b->y +
a->z * b->z;
}
dekompileeritakse utiliit wasm-decompile pseudokeeleks
funktsioon dot(a:{ a: float, b: float, c: float },
b:{ a:float, b: float, c: float }): float {
tagasta aa * ba + ab * bb + ac * bc
}
samas kui teisendamine tekstivormingusse ".wat" näeks välja selline
(func $dot (tüüp 0) (param i32 i32) (tulemus f32)
(f32.add
(f32.add
(f32.mul
(f32.load
(local.get 0))
(f32.load
(kohalik.hanki 1)))
(f32.mul
(f32.koormuse nihe=4
(local.get 0))
(f32.koormuse nihe=4
(kohalik.hanki 1))))
(f32.mul
(f32.koormuse nihe=8
(local.get 0))
(f32.koormuse nihe=8
(kohalik.hanki 1))))))
Allikas: opennet.ru