diff --git a/benchmarks/wasm/btree/2o1u.wat b/benchmarks/wasm/btree/2o1u.wat index 1e55e025..8a4a2b80 100644 --- a/benchmarks/wasm/btree/2o1u.wat +++ b/benchmarks/wasm/btree/2o1u.wat @@ -1,4 +1,5 @@ (module + (import "env" "log" (func $log (param i32))) (memory $0 2) (func $createBtree (param i32) (result i32) ;; createBtree(t), where t: degree of the btree (i32.const 0) @@ -519,7 +520,7 @@ ) ) ;; btreeInsertNonFull(x, k), where x: addr of a non full internal node; k: the key to insert - (func $btreeInsertNonFull (param i32) (param i32) (local i32) + (func $btreeInsertNonFull (param i32) (param i32) (local i32) (local $tmp i32) (local.get 0) ;; x (i32.load offset=4) ;; x.n (i32.const 1) @@ -527,6 +528,9 @@ (local.set 2) ;; i = x.n -1 (local.get 0) ;; x (i32.load) ;; get first i32 --> isLeaf + (local.tee $tmp) + (local.get $tmp) + (call $log) (i32.const 1) (i32.eq) ;; is leaf? (if @@ -2811,11 +2815,11 @@ ) (export "main" (func $main)) (func $real_main - i32.const 1 + i32.const 3 i32.const 2 i32.const 1 call $main ) (start $real_main) - (start $real_main) + (export "real_main" (func $real_main)) ) diff --git a/benchmarks/wasm/btree/start.js b/benchmarks/wasm/btree/start.js new file mode 100644 index 00000000..8104d9de --- /dev/null +++ b/benchmarks/wasm/btree/start.js @@ -0,0 +1,19 @@ +const fs = require("fs"); + +async function main() { + const bytes = fs.readFileSync("2o1u.wasm"); + const env = { log: val => console.log(`logged ${val}`), }; + const { instance } = await WebAssembly.instantiate( + bytes, + { + env: { + log(val) { + console.log(`log saw ${val}`); + } + } + } + ); + instance.exports.real_main(); + console.log(`finished`); +} +main(); \ No newline at end of file