From 5233c0c33c656ef08572527d4d0260f8c5098735 Mon Sep 17 00:00:00 2001 From: usuyuki <63891531+usuyuki@users.noreply.github.com> Date: Fri, 15 Dec 2023 10:45:11 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat=20goroutine=E3=81=AE=E5=8B=95=E4=BD=9C?= =?UTF-8?q?=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _examples/goroutine_test/Makefile | 7 + _examples/goroutine_test/go.mod | 7 + _examples/goroutine_test/main.go | 22 + _examples/goroutine_test/main.wasm | Bin 0 -> 86506 bytes _examples/goroutine_test/main.wat | 7270 ++++++++++++++++++++++++++ _examples/goroutine_test/target.json | 8 + 6 files changed, 7314 insertions(+) create mode 100644 _examples/goroutine_test/Makefile create mode 100644 _examples/goroutine_test/go.mod create mode 100644 _examples/goroutine_test/main.go create mode 100755 _examples/goroutine_test/main.wasm create mode 100644 _examples/goroutine_test/main.wat create mode 100644 _examples/goroutine_test/target.json diff --git a/_examples/goroutine_test/Makefile b/_examples/goroutine_test/Makefile new file mode 100644 index 0000000..c13e444 --- /dev/null +++ b/_examples/goroutine_test/Makefile @@ -0,0 +1,7 @@ +r: + tinygo build -target ./target.json -o main.wasm main.go + cp main.wasm /home/usuyuki/.cache/mahiwa/user.wasm + wasm2wat /home/usuyuki/.cache/mahiwa/user.wasm -o /home/usuyuki/.cache/mahiwa/user.wat + (cd /home/usuyuki/.cache/mahiwa && xxd -i user.wasm > user.h) + cp /home/usuyuki/.cache/mahiwa/user.h /home/usuyuki/mahiwa_space/mahiwa-backend/src/wasm/user.h + diff --git a/_examples/goroutine_test/go.mod b/_examples/goroutine_test/go.mod new file mode 100644 index 0000000..c972386 --- /dev/null +++ b/_examples/goroutine_test/go.mod @@ -0,0 +1,7 @@ +module github.com/project-mahiwa/mahiwa-frontend-go/_examples/goroutine_test + +go 1.21.3 + +require github.com/project-mahiwa/mahiwa-frontend-go v0.0.0-00010101000000-000000000000 + +replace github.com/project-mahiwa/mahiwa-frontend-go => ../../../mahiwa-frontend-go diff --git a/_examples/goroutine_test/main.go b/_examples/goroutine_test/main.go new file mode 100644 index 0000000..8f6d2cb --- /dev/null +++ b/_examples/goroutine_test/main.go @@ -0,0 +1,22 @@ +package main + +import ( + "github.com/project-mahiwa/mahiwa-frontend-go/arduino" + "github.com/project-mahiwa/mahiwa-frontend-go/serial" +) + +// goroutineをしたとき、wasmでどう表現されているのかを見る。 +func main() { + serial.Println("main routine") + go func() { + serial.Println("goroutine") + }() + arduino.Delay(1000) // mainルーチンをgoroutineより先に終了させないためのdelay + // 普通のgoでは + // main routine + // goroutine + // の順で表示されるが、mahiwaで動かすと + // main routine + // Error: [trap] stack overflow () + // となり、実行不可 +} diff --git a/_examples/goroutine_test/main.wasm b/_examples/goroutine_test/main.wasm new file mode 100755 index 0000000000000000000000000000000000000000..7c3d67234ceefe4f0ad4aec0be3bf8ef10a3b93d GIT binary patch literal 86506 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%0Ao_i8V0trt+ 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 DMLftW literal 0 HcmV?d00001 diff --git a/_examples/goroutine_test/main.wat b/_examples/goroutine_test/main.wat new file mode 100644 index 0000000..18c1943 --- /dev/null +++ b/_examples/goroutine_test/main.wat @@ -0,0 +1,7270 @@ +(module + (type (;0;) (func)) + (type (;1;) (func (param i32))) + (type (;2;) (func (param i32 i32 i32 i32) (result i32))) + (type (;3;) (func (param i32 i32))) + (type (;4;) (func (param i32 i32) (result i32))) + (type (;5;) (func (param i32) (result i32))) + (type (;6;) (func (result i32))) + (type (;7;) (func (param i32 i32 i32 i32))) + (import "serial" "print" (func $print (type 3))) + (import "wasi_snapshot_preview1" "fd_write" (func $runtime.fd_write (type 2))) + (import "arduino" "delay" (func $delay (type 1))) + (func $tinygo_getCurrentStackPointer (type 6) (result i32) + global.get $__stack_pointer) + (func $tinygo_unwind (type 1) (param i32) + i32.const 2328 + i32.load8_u + if ;; label = @1 + call $asyncify_stop_rewind + i32.const 2328 + i32.const 0 + i32.store8 + else + local.get 0 + global.get $__stack_pointer + i32.store offset=4 + local.get 0 + call $asyncify_start_unwind + end) + (func $tinygo_launch (type 1) (param i32) + (local i32) + global.get $__stack_pointer + local.set 1 + local.get 0 + i32.load offset=12 + global.set $__stack_pointer + local.get 0 + i32.load offset=4 + local.get 0 + i32.load + call_indirect (type 1) + call $asyncify_stop_unwind + local.get 1 + global.set $__stack_pointer) + (func $tinygo_rewind (type 1) (param i32) + (local i32 i32 i32) + global.get $__stack_pointer + local.set 1 + local.get 0 + i32.load offset=12 + global.set $__stack_pointer + local.get 0 + i32.load offset=4 + local.set 2 + local.get 0 + i32.load + local.set 3 + i32.const 2328 + i32.const 1 + i32.store8 + local.get 0 + i32.const 8 + i32.add + call $asyncify_start_rewind + local.get 2 + local.get 3 + call_indirect (type 1) + call $asyncify_stop_unwind + local.get 1 + global.set $__stack_pointer) + (func $dummy (type 0) + nop) + (func $__wasm_call_dtors (type 0) + call $dummy + call $dummy) + (func $github.com/project-mahiwa/mahiwa-frontend-go/serial.Println (type 3) (param i32 i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + local.get 2 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + local.get 1 + call $print + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 2 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 2048 + i32.const 1 + call $print + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + return + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store) + (func $_*internal/task.Queue_.Pop (type 6) (result i32) + (local i32) + i32.const 2464 + i32.load + local.tee 0 + if ;; label = @1 + i32.const 2464 + local.get 0 + i32.load + i32.store + i32.const 2468 + i32.load + local.get 0 + i32.eq + if ;; label = @2 + i32.const 2468 + i32.const 0 + i32.store + end + local.get 0 + i32.const 0 + i32.store + end + local.get 0) + (func $_*internal/task.Task_.Resume (type 1) (param i32) + (local i32 i32 i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.load offset=16 + local.set 1 + local.get 0 + i32.const 2516 + i32.load + i32.store offset=16 + i32.const 2516 + local.get 1 + i32.store + i32.const 2332 + i32.load + local.set 1 + i32.const 2332 + local.get 0 + i32.store + local.get 0 + i32.const 20 + i32.add + local.set 3 + block ;; label = @3 + local.get 0 + i32.const 36 + i32.add + i32.load8_u + if ;; label = @4 + local.get 3 + call $tinygo_rewind + br 1 (;@3;) + end + local.get 3 + call $tinygo_launch + local.get 0 + i32.const 1 + i32.store8 offset=36 + end + i32.const 2332 + local.get 1 + i32.store + i32.const 2516 + i32.load + local.set 1 + i32.const 2516 + local.get 0 + i32.load offset=16 + i32.store + local.get 0 + local.get 1 + i32.store offset=16 + local.get 0 + i32.const 32 + i32.add + i32.load + local.get 0 + i32.const 28 + i32.add + i32.load + i32.ge_u + if ;; label = @3 + return + end + end + local.get 2 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $runtime.runtimePanic + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.runtimePanic (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2049 + i32.const 14 + call $runtime.runtimePanicAt + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $internal/task.start (type 1) (param i32) + (local i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 20 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=8 + local.set 3 + local.get 1 + i32.load offset=12 + local.set 4 + local.get 1 + i32.load offset=16 + local.set 5 + local.get 1 + i32.load offset=4 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 6 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 48 + i32.sub + local.tee 3 + global.set $__stack_pointer + local.get 3 + i32.const 24 + i32.add + i64.const 0 + i64.store + local.get 3 + i32.const 32 + i32.add + i64.const 0 + i64.store + local.get 3 + i32.const 40 + i32.add + i32.const 0 + i32.store + local.get 3 + i64.const 0 + i64.store offset=16 + local.get 3 + i32.const 7 + i32.store offset=12 + i32.const 2516 + i32.load + local.set 4 + i32.const 2516 + local.get 3 + i32.const 8 + i32.add + local.tee 2 + i32.store + local.get 3 + local.get 4 + i32.store offset=8 + end + local.get 6 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 48 + call $runtime.alloc + local.set 1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 1 + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 2 + local.get 0 + i32.store offset=20 + local.get 2 + i32.const 24 + i32.add + local.tee 0 + i32.const 0 + i32.store + local.get 3 + local.get 2 + i32.store offset=16 + local.get 2 + i32.const 28 + i32.add + local.set 5 + end + local.get 6 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 32768 + call $runtime.alloc + local.set 1 + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 1 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 5 + local.get 0 + i32.store + local.get 0 + i32.const -1204030091 + i32.store + local.get 2 + i32.const 32 + i32.add + local.get 0 + i32.const 32768 + i32.add + i32.store + i32.const 2468 + i32.load + local.tee 0 + if ;; label = @3 + local.get 0 + local.get 2 + i32.store + end + local.get 2 + i32.const 0 + i32.store + i32.const 2468 + local.get 2 + i32.store + i32.const 2464 + i32.load + i32.eqz + if ;; label = @3 + i32.const 2464 + local.get 2 + i32.store + end + i32.const 2516 + local.get 4 + i32.store + local.get 3 + i32.const 48 + i32.add + global.set $__stack_pointer + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 1 + local.get 0 + i32.store + local.get 1 + local.get 2 + i32.store offset=4 + local.get 1 + local.get 3 + i32.store offset=8 + local.get 1 + local.get 4 + i32.store offset=12 + local.get 1 + local.get 5 + i32.store offset=16 + global.get 2 + global.get 2 + i32.load + i32.const 20 + i32.add + i32.store) + (func $runtime.alloc (type 5) (param i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 28 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 3 + i32.load + local.set 0 + local.get 3 + i32.load offset=12 + local.set 4 + local.get 3 + i32.load offset=16 + local.set 5 + local.get 3 + i32.load offset=20 + local.set 6 + local.get 3 + i32.load offset=24 + local.set 7 + local.get 3 + i32.load offset=8 + local.set 2 + local.get 3 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 8 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.eqz + if ;; label = @3 + i32.const 2512 + return + end + i32.const 2488 + i32.const 2488 + i64.load + local.get 0 + i64.extend_i32_u + i64.add + i64.store + i32.const 2496 + i32.const 2496 + i64.load + i64.const 1 + i64.add + i64.store + local.get 0 + i32.const 15 + i32.add + i32.const 4 + i32.shr_u + local.set 7 + i32.const 2476 + i32.load + local.tee 4 + local.set 5 + i32.const 0 + local.set 6 + i32.const 0 + local.set 2 + end + loop ;; label = @2 + local.get 1 + local.get 4 + local.get 5 + i32.eq + global.get 1 + select + local.set 1 + block ;; label = @3 + block ;; label = @4 + block ;; label = @5 + block ;; label = @6 + global.get 1 + i32.eqz + if ;; label = @7 + local.get 1 + i32.eqz + if ;; label = @8 + local.get 2 + local.set 1 + br 2 (;@6;) + end + local.get 2 + i32.const 255 + i32.and + local.set 4 + i32.const 1 + local.set 1 + end + block ;; label = @7 + global.get 1 + i32.eqz + if ;; label = @8 + block ;; label = @9 + local.get 4 + br_table 3 (;@6;) 0 (;@9;) 2 (;@7;) + end + i32.const 2516 + i32.load + drop + i32.const 2332 + i32.load + local.set 2 + end + block ;; label = @8 + global.get 1 + i32.eqz + if ;; label = @9 + local.get 2 + br_if 1 (;@8;) + call $tinygo_getCurrentStackPointer + local.set 2 + end + local.get 8 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @9 + local.get 2 + i32.const 2048 + call $runtime.markRoots + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 8 (;@1;) + drop + end + end + local.get 8 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @8 + i32.const 2048 + i32.const 2816 + call $runtime.markRoots + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 7 (;@1;) + drop + end + loop ;; label = @8 + global.get 1 + i32.eqz + if ;; label = @9 + i32.const 2513 + i32.load8_u + i32.eqz + if ;; label = @10 + i32.const 0 + local.set 2 + i32.const 0 + local.set 4 + i32.const 0 + local.set 1 + loop ;; label = @11 + block ;; label = @12 + block ;; label = @13 + local.get 1 + i32.const 2480 + i32.load + i32.lt_u + if ;; label = @14 + block ;; label = @15 + block ;; label = @16 + block ;; label = @17 + block ;; label = @18 + local.get 1 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.const 1 + i32.sub + br_table 0 (;@18;) 1 (;@17;) 2 (;@16;) 3 (;@15;) + end + local.get 1 + call $_runtime.gcBlock_.markFree + i32.const 2504 + i32.const 2504 + i64.load + i64.const 1 + i64.add + i64.store + br 4 (;@13;) + end + local.get 4 + i32.const 1 + i32.and + local.set 3 + i32.const 0 + local.set 4 + local.get 3 + i32.eqz + br_if 4 (;@12;) + local.get 1 + call $_runtime.gcBlock_.markFree + br 3 (;@13;) + end + i32.const 0 + local.set 4 + i32.const 2472 + i32.load + local.get 1 + i32.const 2 + i32.shr_u + i32.add + local.tee 3 + i32.load8_u + i32.const 2 + local.get 1 + i32.const 1 + i32.shl + i32.const 6 + i32.and + i32.shl + i32.const -1 + i32.xor + i32.and + local.set 9 + local.get 3 + local.get 9 + i32.store8 + br 3 (;@12;) + end + local.get 2 + i32.const 16 + i32.add + local.set 2 + br 2 (;@12;) + end + i32.const 2 + local.set 1 + i32.const 2472 + i32.load + i32.const 2816 + i32.sub + i32.const 3 + i32.div_u + local.get 2 + i32.le_u + br_if 7 (;@6;) + call $runtime.growHeap + drop + br 7 (;@6;) + end + local.get 2 + i32.const 16 + i32.add + local.set 2 + i32.const 1 + local.set 4 + end + local.get 1 + i32.const 1 + i32.add + local.set 1 + br 0 (;@11;) + end + unreachable + end + i32.const 2513 + i32.const 0 + i32.store8 + i32.const 2480 + i32.load + local.set 2 + i32.const 0 + local.set 1 + end + loop ;; label = @9 + global.get 1 + i32.eqz + if ;; label = @10 + local.get 1 + local.get 2 + i32.ge_u + local.tee 4 + br_if 2 (;@8;) + local.get 1 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.const 3 + i32.ne + local.set 4 + end + global.get 1 + i32.const 1 + local.get 4 + select + if ;; label = @10 + local.get 8 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @11 + local.get 1 + call $runtime.startMark + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 10 (;@1;) + drop + end + global.get 1 + if (result i32) ;; label = @11 + local.get 2 + else + i32.const 2480 + i32.load + end + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @10 + local.get 1 + i32.const 1 + i32.add + local.set 1 + br 1 (;@9;) + end + end + end + end + global.get 1 + i32.eqz + if ;; label = @7 + local.get 2 + local.set 1 + call $runtime.growHeap + i32.const 1 + i32.and + i32.eqz + br_if 2 (;@5;) + end + end + global.get 1 + i32.eqz + if ;; label = @6 + i32.const 2480 + i32.load + local.get 5 + i32.eq + if ;; label = @7 + i32.const 0 + local.set 5 + br 3 (;@4;) + end + local.get 5 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + if ;; label = @7 + local.get 5 + i32.const 1 + i32.add + local.set 5 + br 3 (;@4;) + end + local.get 5 + i32.const 1 + i32.add + local.set 2 + local.get 6 + i32.const 1 + i32.add + local.tee 6 + local.get 7 + i32.ne + if ;; label = @7 + local.get 2 + local.set 5 + br 4 (;@3;) + end + i32.const 2476 + local.get 2 + i32.store + local.get 2 + local.get 7 + i32.sub + local.tee 2 + i32.const 1 + call $_runtime.gcBlock_.setState + local.get 5 + local.get 7 + i32.sub + i32.const 2 + i32.add + local.set 1 + loop ;; label = @7 + local.get 1 + i32.const 2476 + i32.load + i32.ne + if ;; label = @8 + local.get 1 + i32.const 2 + call $_runtime.gcBlock_.setState + local.get 1 + i32.const 1 + i32.add + local.set 1 + br 1 (;@7;) + end + end + local.get 2 + i32.const 4 + i32.shl + i32.const 2816 + i32.add + local.tee 1 + i32.const 0 + local.get 0 + memory.fill + local.get 1 + return + end + end + local.get 8 + i32.const 3 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + i32.const 2128 + i32.const 13 + call $runtime.runtimePanicAt + i32.const 3 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @5 + unreachable + end + end + local.get 6 + i32.const 0 + global.get 1 + select + local.set 6 + end + global.get 1 + i32.eqz + if ;; label = @3 + i32.const 2476 + i32.load + local.set 4 + local.get 1 + local.set 2 + br 1 (;@2;) + end + end + unreachable + end + local.set 3 + global.get 2 + i32.load + local.get 3 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 3 + local.get 0 + i32.store + local.get 3 + local.get 1 + i32.store offset=4 + local.get 3 + local.get 2 + i32.store offset=8 + local.get 3 + local.get 4 + i32.store offset=12 + local.get 3 + local.get 5 + i32.store offset=16 + local.get 3 + local.get 6 + i32.store offset=20 + local.get 3 + local.get 7 + i32.store offset=24 + global.get 2 + global.get 2 + i32.load + i32.const 28 + i32.add + i32.store + i32.const 0) + (func $internal/task.Pause (type 0) + (local i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2332 + i32.load + local.tee 0 + i32.eqz + local.set 2 + end + block ;; label = @2 + block ;; label = @3 + block ;; label = @4 + global.get 1 + i32.eqz + if ;; label = @5 + local.get 2 + br_if 1 (;@4;) + local.get 0 + i32.const 28 + i32.add + local.tee 0 + i32.load + i32.load + i32.const -1204030091 + i32.ne + br_if 2 (;@3;) + end + local.get 1 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @5 + local.get 0 + call $tinygo_unwind + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @5 + i32.const 2332 + i32.load + local.tee 0 + br_if 3 (;@2;) + end + end + local.get 1 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @4 + call $runtime.nilPanic + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @4 + unreachable + end + end + local.get 1 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @3 + call $runtime.runtimePanic + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + unreachable + end + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.const 28 + i32.add + i32.load + i32.const -1204030091 + i32.store + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.nilPanic (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2170 + i32.const 23 + call $runtime.runtimePanicAt + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.memequal (type 2) (param i32 i32 i32 i32) (result i32) + (local i32 i32) + i32.const 0 + local.set 3 + block (result i32) ;; label = @1 + loop ;; label = @2 + local.get 2 + local.get 2 + local.get 3 + i32.eq + br_if 1 (;@1;) + drop + local.get 1 + local.get 3 + i32.add + local.set 4 + local.get 0 + local.get 3 + i32.add + local.set 5 + local.get 3 + i32.const 1 + i32.add + local.set 3 + local.get 4 + i32.load8_u + local.get 5 + i32.load8_u + i32.eq + br_if 0 (;@2;) + end + local.get 3 + i32.const 1 + i32.sub + end + local.get 2 + i32.ge_u) + (func $runtime.hash32 (type 2) (param i32 i32 i32 i32) (result i32) + local.get 2 + i32.const -2128831035 + i32.mul + local.set 2 + loop ;; label = @1 + local.get 1 + if ;; label = @2 + local.get 1 + i32.const 1 + i32.sub + local.set 1 + local.get 0 + i32.load8_u + local.get 2 + i32.xor + i32.const 16777619 + i32.mul + local.set 2 + local.get 0 + i32.const 1 + i32.add + local.set 0 + br 1 (;@1;) + end + end + local.get 2) + (func $malloc (type 5) (param i32) (result i32) + (local i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 16 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=12 + local.set 4 + local.get 2 + i32.load offset=8 + local.set 3 + local.get 2 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 5 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 32 + i32.sub + local.tee 1 + global.set $__stack_pointer + local.get 1 + i32.const 2 + i32.store offset=20 + i32.const 2516 + i32.load + local.set 4 + i32.const 2516 + local.get 1 + i32.const 16 + i32.add + i32.store + local.get 1 + local.get 4 + i32.store offset=16 + local.get 0 + i32.eqz + local.set 6 + i32.const 0 + local.set 3 + end + block ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 6 + br_if 1 (;@3;) + local.get 0 + i32.const 0 + i32.lt_s + local.tee 3 + br_if 2 (;@2;) + end + local.get 5 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + local.get 0 + call $runtime.alloc + local.set 2 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + local.get 2 + local.set 3 + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 1 + local.get 3 + i32.store offset=24 + local.get 1 + local.get 3 + i32.store offset=28 + local.get 1 + local.get 0 + i32.store offset=8 + local.get 1 + local.get 0 + i32.store offset=4 + local.get 1 + local.get 3 + i32.store + local.get 1 + local.get 3 + i32.store offset=12 + local.get 1 + i32.const 12 + i32.add + local.set 0 + end + local.get 5 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @4 + local.get 0 + local.get 1 + call $runtime.hashmapBinarySet + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + end + global.get 1 + i32.eqz + if ;; label = @3 + i32.const 2516 + local.get 4 + i32.store + local.get 1 + i32.const 32 + i32.add + global.set $__stack_pointer + local.get 3 + return + end + end + local.get 5 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.slicePanic + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + unreachable + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + local.get 2 + local.get 3 + i32.store offset=8 + local.get 2 + local.get 4 + i32.store offset=12 + global.get 2 + global.get 2 + i32.load + i32.const 16 + i32.add + i32.store + i32.const 0) + (func $runtime.hashmapBinarySet (type 3) (param i32 i32) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=4 + local.set 1 + local.get 2 + i32.load offset=8 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 3 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.const 2296 + i32.load + i32.const 2288 + i32.load + local.get 0 + call $runtime.hash32 + local.set 2 + end + local.get 3 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2284 + local.get 0 + local.get 1 + local.get 2 + call $runtime.hashmapSet + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + return + end + local.set 3 + global.get 2 + i32.load + local.get 3 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 3 + local.get 0 + i32.store + local.get 3 + local.get 1 + i32.store offset=4 + local.get 3 + local.get 2 + i32.store offset=8 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.add + i32.store) + (func $runtime.slicePanic (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2211 + i32.const 18 + call $runtime.runtimePanicAt + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $free (type 1) (param i32) + (local i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=4 + local.set 1 + local.get 2 + i32.load offset=8 + local.set 3 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 4 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 16 + i32.sub + local.tee 3 + global.set $__stack_pointer + local.get 0 + i32.eqz + local.set 1 + end + block ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 1 + br_if 1 (;@3;) + local.get 3 + local.get 0 + i32.store offset=12 + local.get 3 + i32.const 12 + i32.add + local.set 1 + end + local.get 4 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + local.get 1 + local.get 3 + call $runtime.hashmapBinaryGet + local.set 2 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + local.get 2 + local.set 1 + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 1 + i32.const 1 + i32.and + i32.eqz + br_if 2 (;@2;) + local.get 3 + local.get 0 + i32.store + end + local.get 4 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @4 + local.get 3 + call $runtime.hashmapBinaryDelete + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + end + global.get 1 + i32.eqz + if ;; label = @3 + local.get 3 + i32.const 16 + i32.add + global.set $__stack_pointer + return + end + end + local.get 4 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 2088 + call $runtime._panic + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + local.get 2 + local.get 3 + i32.store offset=8 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.add + i32.store) + (func $runtime.hashmapBinaryGet (type 4) (param i32 i32) (result i32) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 3 + i32.load + local.set 0 + local.get 3 + i32.load offset=4 + local.set 1 + local.get 3 + i32.load offset=8 + local.set 3 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.const 2296 + i32.load + i32.const 2288 + i32.load + local.get 0 + call $runtime.hash32 + local.set 3 + end + local.get 2 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2284 + local.get 0 + local.get 1 + local.get 3 + call $runtime.hashmapGet + local.set 2 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 2 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + return + end + unreachable + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + local.get 2 + local.get 3 + i32.store offset=8 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.add + i32.store + i32.const 0) + (func $runtime.hashmapBinaryDelete (type 1) (param i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 44 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=8 + local.set 3 + local.get 1 + i32.load offset=12 + local.set 4 + local.get 1 + i32.load offset=20 + local.set 6 + local.get 1 + i32.load offset=24 + local.set 7 + local.get 1 + i32.load offset=28 + local.set 8 + local.get 1 + i32.load offset=32 + local.set 9 + local.get 1 + i32.load offset=36 + local.set 10 + local.get 1 + i32.load offset=40 + local.set 11 + local.get 1 + i32.load offset=16 + local.set 5 + local.get 1 + i32.load offset=4 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 12 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 32 + i32.sub + local.tee 2 + global.set $__stack_pointer + local.get 2 + i32.const 24 + i32.add + i64.const 0 + i64.store + local.get 2 + i64.const 0 + i64.store offset=16 + local.get 2 + i32.const 6 + i32.store offset=4 + i32.const 2516 + i32.load + local.set 7 + i32.const 2516 + local.get 2 + i32.store + local.get 2 + local.get 7 + i32.store + local.get 0 + i32.const 2296 + i32.load + i32.const 2288 + i32.load + local.tee 6 + local.get 4 + call $runtime.hash32 + local.tee 4 + i32.const 24 + i32.shr_u + local.tee 3 + i32.const 1 + local.get 3 + select + local.set 8 + i32.const 2284 + local.get 4 + call $runtime.hashmapBucketAddrForHash + local.set 3 + end + block ;; label = @2 + loop ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 2 + local.get 3 + i32.store offset=8 + local.get 2 + local.get 3 + i32.store offset=12 + local.get 3 + i32.eqz + br_if 2 (;@2;) + i32.const 0 + local.set 4 + end + block ;; label = @4 + loop ;; label = @5 + block ;; label = @6 + global.get 1 + i32.eqz + if ;; label = @7 + local.get 4 + i32.const 8 + i32.eq + local.tee 6 + br_if 1 (;@6;) + local.get 2 + i32.const 2296 + i32.load + local.tee 9 + local.get 4 + i32.mul + local.get 3 + i32.add + i32.const 12 + i32.add + local.tee 6 + i32.store offset=16 + local.get 8 + local.get 3 + local.get 4 + i32.add + local.tee 10 + i32.load8_u + i32.ne + local.set 5 + end + block ;; label = @7 + global.get 1 + i32.eqz + if ;; label = @8 + local.get 5 + br_if 1 (;@7;) + local.get 2 + i32.const 2308 + i32.load + local.tee 11 + i32.store offset=20 + local.get 2 + i32.const 2312 + i32.load + local.tee 5 + i32.store offset=24 + local.get 5 + i32.eqz + br_if 4 (;@4;) + end + local.get 12 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @8 + local.get 0 + local.get 6 + local.get 9 + local.get 11 + local.get 5 + call_indirect (type 2) + local.set 1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 7 (;@1;) + drop + local.get 1 + local.set 5 + end + global.get 1 + i32.eqz + if ;; label = @8 + local.get 5 + i32.const 1 + i32.and + i32.eqz + local.tee 5 + br_if 1 (;@7;) + local.get 10 + i32.const 0 + i32.store8 + local.get 6 + i32.const 0 + i32.const 2296 + i32.load + memory.fill + local.get 3 + local.get 4 + i32.const 2300 + i32.load + local.tee 6 + i32.mul + i32.const 2296 + i32.load + i32.const 3 + i32.shl + i32.add + i32.add + i32.const 12 + i32.add + i32.const 0 + local.get 6 + memory.fill + i32.const 2292 + i32.const 2292 + i32.load + i32.const 1 + i32.sub + i32.store + br 6 (;@2;) + end + end + global.get 1 + i32.eqz + if ;; label = @7 + local.get 4 + i32.const 1 + i32.add + local.set 4 + br 2 (;@5;) + end + end + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 3 + i32.load offset=8 + local.set 3 + br 2 (;@3;) + end + end + end + local.get 12 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @3 + call $runtime.nilPanic + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + unreachable + end + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2516 + local.get 7 + i32.store + local.get 2 + i32.const 32 + i32.add + global.set $__stack_pointer + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 1 + local.get 0 + i32.store + local.get 1 + local.get 2 + i32.store offset=4 + local.get 1 + local.get 3 + i32.store offset=8 + local.get 1 + local.get 4 + i32.store offset=12 + local.get 1 + local.get 5 + i32.store offset=16 + local.get 1 + local.get 6 + i32.store offset=20 + local.get 1 + local.get 7 + i32.store offset=24 + local.get 1 + local.get 8 + i32.store offset=28 + local.get 1 + local.get 9 + i32.store offset=32 + local.get 1 + local.get 10 + i32.store offset=36 + local.get 1 + local.get 11 + i32.store offset=40 + global.get 2 + global.get 2 + i32.load + i32.const 44 + i32.add + i32.store) + (func $runtime._panic (type 1) (param i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + local.get 1 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2141 + i32.const 7 + call $runtime.printstring + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 1 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + local.get 0 + call $runtime.printitf + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 1 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.printnl + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $calloc (type 4) (param i32 i32) (result i32) + (local i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=4 + local.set 3 + local.get 2 + i32.load offset=8 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 4 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 16 + i32.sub + local.tee 3 + global.set $__stack_pointer + i32.const 2516 + i32.load + local.set 2 + i32.const 2516 + local.get 3 + i32.store + local.get 0 + local.get 1 + i32.mul + local.set 0 + end + local.get 4 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + call $malloc + local.set 1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 1 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2516 + local.get 2 + i32.store + local.get 3 + i32.const 16 + i32.add + global.set $__stack_pointer + local.get 0 + return + end + unreachable + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 1 + local.get 0 + i32.store + local.get 1 + local.get 3 + i32.store offset=4 + local.get 1 + local.get 2 + i32.store offset=8 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.add + i32.store + i32.const 0) + (func $realloc (type 4) (param i32 i32) (result i32) + (local i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 24 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 3 + i32.load + local.set 0 + local.get 3 + i32.load offset=8 + local.set 2 + local.get 3 + i32.load offset=12 + local.set 4 + local.get 3 + i32.load offset=16 + local.set 5 + local.get 3 + i32.load offset=20 + local.set 7 + local.get 3 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 6 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 32 + i32.sub + local.tee 2 + global.set $__stack_pointer + local.get 2 + i32.const 2 + i32.store offset=20 + i32.const 2516 + i32.load + local.set 7 + i32.const 2516 + local.get 2 + i32.const 16 + i32.add + local.tee 4 + i32.store + local.get 2 + local.get 7 + i32.store offset=16 + i32.const 0 + local.set 5 + end + block ;; label = @2 + block ;; label = @3 + block ;; label = @4 + global.get 1 + i32.const 1 + local.get 1 + select + if ;; label = @5 + local.get 6 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @6 + local.get 0 + call $free + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 5 (;@1;) + drop + end + global.get 1 + i32.eqz + br_if 1 (;@4;) + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 1 + i32.const 0 + i32.lt_s + local.tee 5 + br_if 2 (;@3;) + end + local.get 6 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 1 + call $runtime.alloc + local.set 3 + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 3 + local.set 5 + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 2 + local.get 5 + i32.store offset=24 + local.get 2 + local.get 5 + i32.store offset=28 + local.get 0 + i32.eqz + local.set 4 + end + block ;; label = @5 + global.get 1 + i32.eqz + if ;; label = @6 + local.get 4 + br_if 1 (;@5;) + local.get 2 + local.get 0 + i32.store offset=12 + local.get 2 + i32.const 12 + i32.add + local.set 4 + end + local.get 6 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @6 + local.get 4 + local.get 2 + call $runtime.hashmapBinaryGet + local.set 3 + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 5 (;@1;) + drop + local.get 3 + local.set 4 + end + global.get 1 + i32.eqz + if ;; label = @6 + local.get 4 + i32.const 1 + i32.and + i32.eqz + br_if 4 (;@2;) + local.get 5 + local.get 2 + i32.load + local.get 2 + i32.load offset=4 + local.tee 4 + local.get 1 + local.get 1 + local.get 4 + i32.gt_u + select + memory.copy + local.get 2 + local.get 0 + i32.store + end + local.get 6 + i32.const 3 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @6 + local.get 2 + call $runtime.hashmapBinaryDelete + i32.const 3 + global.get 1 + i32.const 1 + i32.eq + br_if 5 (;@1;) + drop + end + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 2 + local.get 1 + i32.store offset=8 + local.get 2 + local.get 1 + i32.store offset=4 + local.get 2 + local.get 5 + i32.store + local.get 2 + local.get 5 + i32.store offset=12 + local.get 2 + i32.const 12 + i32.add + local.set 0 + end + local.get 6 + i32.const 4 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 0 + local.get 2 + call $runtime.hashmapBinarySet + i32.const 4 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + end + end + global.get 1 + i32.eqz + if ;; label = @4 + i32.const 2516 + local.get 7 + i32.store + local.get 2 + i32.const 32 + i32.add + global.set $__stack_pointer + local.get 5 + return + end + end + local.get 6 + i32.const 5 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @3 + call $runtime.slicePanic + i32.const 5 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + unreachable + end + end + local.get 6 + i32.const 6 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 2120 + call $runtime._panic + i32.const 6 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + unreachable + end + local.set 3 + global.get 2 + i32.load + local.get 3 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 3 + local.get 0 + i32.store + local.get 3 + local.get 1 + i32.store offset=4 + local.get 3 + local.get 2 + i32.store offset=8 + local.get 3 + local.get 4 + i32.store offset=12 + local.get 3 + local.get 5 + i32.store offset=16 + local.get 3 + local.get 7 + i32.store offset=20 + global.get 2 + global.get 2 + i32.load + i32.const 24 + i32.add + i32.store + i32.const 0) + (func $_start (type 0) + (local i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 0 + i32.load + local.set 1 + local.get 0 + i32.load offset=4 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 3 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 16 + i32.sub + local.tee 1 + global.set $__stack_pointer + local.get 1 + i32.const 0 + i32.store offset=12 + local.get 1 + i64.const 2 + i64.store offset=4 align=4 + i32.const 2516 + i32.load + local.set 2 + i32.const 2516 + local.get 1 + i32.store + local.get 1 + local.get 2 + i32.store + memory.size + local.set 0 + i32.const 2524 + i32.const 1 + i32.store8 + i32.const 2336 + local.get 0 + i32.const 16 + i32.shl + local.tee 4 + i32.store + call $runtime.calculateHeapAddresses + local.get 1 + i32.const 2472 + i32.load + local.tee 0 + i32.store offset=12 + local.get 1 + local.get 0 + i32.store offset=8 + local.get 0 + i32.const 0 + local.get 4 + local.get 0 + i32.sub + memory.fill + end + local.get 3 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 1 + call $internal/task.start + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 3 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.scheduler + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2516 + local.get 2 + i32.store + i32.const 2524 + i32.const 0 + i32.store8 + local.get 1 + i32.const 16 + i32.add + global.set $__stack_pointer + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 0 + local.get 1 + i32.store + local.get 0 + local.get 2 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store) + (func $runtime.calculateHeapAddresses (type 0) + (local i32 i32) + i32.const 2336 + i32.load + local.tee 0 + i32.const 2752 + i32.sub + i32.const 65 + i32.div_u + local.set 1 + i32.const 2472 + local.get 0 + local.get 1 + i32.sub + local.tee 0 + i32.store + i32.const 2480 + local.get 0 + i32.const 2816 + i32.sub + i32.const 4 + i32.shr_u + i32.store) + (func $runtime.run$1$gowrapper (type 1) (param i32) + (local i32) + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + local.get 1 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $runtime.run$1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 1 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.deadlock + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.scheduler (type 0) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + loop ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + i32.const 2525 + i32.load8_u + br_if 1 (;@3;) + call $_*internal/task.Queue_.Pop + local.tee 0 + i32.eqz + br_if 1 (;@3;) + end + local.get 1 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + local.get 0 + call $_*internal/task.Task_.Resume + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + global.get 1 + i32.eqz + br_if 1 (;@2;) + end + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $resume (type 0) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + local.get 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2 + call $internal/task.start + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.const 1 + global.get 1 + if (result i32) ;; label = @2 + local.get 1 + else + i32.const 2524 + i32.load8_u + i32.eqz + end + select + if ;; label = @2 + local.get 0 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @3 + call $runtime.minSched + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + return + end + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2524 + i32.const 1 + i32.store8 + end + local.get 0 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.scheduler + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2524 + i32.const 0 + i32.store8 + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.resume$1$gowrapper (type 1) (param i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $runtime.resume$1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.minSched (type 0) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + loop ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + i32.const 2525 + i32.load8_u + br_if 1 (;@3;) + call $_*internal/task.Queue_.Pop + local.tee 0 + i32.eqz + br_if 1 (;@3;) + end + local.get 1 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + local.get 0 + call $_*internal/task.Task_.Resume + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + global.get 1 + i32.eqz + br_if 1 (;@2;) + end + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $go_scheduler (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + i32.const 1 + global.get 1 + global.get 1 + if (result i32) ;; label = @2 + i32.const 1 + else + i32.const 2524 + i32.load8_u + end + select + if ;; label = @2 + local.get 0 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @3 + call $runtime.minSched + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + return + end + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2524 + i32.const 1 + i32.store8 + end + local.get 0 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.scheduler + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2524 + i32.const 0 + i32.store8 + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.runtimePanicAt (type 3) (param i32 i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + local.get 2 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2148 + i32.const 22 + call $runtime.printstring + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 2 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + local.get 0 + local.get 1 + call $runtime.printstring + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 2 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.printnl + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store) + (func $runtime.printstring (type 3) (param i32 i32) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=4 + local.set 1 + local.get 2 + i32.load offset=8 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 3 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 1 + i32.const 0 + local.get 1 + i32.const 0 + i32.gt_s + local.tee 2 + select + local.set 1 + end + loop ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 1 + i32.eqz + br_if 1 (;@3;) + local.get 0 + i32.load8_u + local.set 2 + end + local.get 3 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + local.get 2 + call $runtime.putchar + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 1 + i32.const 1 + i32.sub + local.set 1 + local.get 0 + i32.const 1 + i32.add + local.set 0 + br 2 (;@2;) + end + end + end + return + end + local.set 3 + global.get 2 + i32.load + local.get 3 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 3 + local.get 0 + i32.store + local.get 3 + local.get 1 + i32.store offset=4 + local.get 3 + local.get 2 + i32.store offset=8 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.add + i32.store) + (func $runtime.printnl (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 10 + call $runtime.putchar + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.putchar (type 1) (param i32) + (local i32 i32 i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2340 + i32.load + local.tee 3 + i32.const 119 + i32.gt_u + local.set 1 + end + block ;; label = @2 + global.get 1 + i32.eqz + if ;; label = @3 + local.get 1 + br_if 1 (;@2;) + i32.const 2340 + local.get 3 + i32.const 1 + i32.add + local.tee 1 + i32.store + local.get 3 + i32.const 2344 + i32.add + local.get 0 + i32.store8 + local.get 0 + i32.const 255 + i32.and + i32.const 10 + i32.eq + local.set 0 + end + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 0 + i32.const 1 + local.get 3 + i32.const 119 + i32.ne + select + i32.eqz + br_if 1 (;@3;) + i32.const 2280 + local.get 1 + i32.store + end + local.get 2 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + i32.const 1 + i32.const 2276 + i32.const 1 + i32.const 2520 + call $runtime.fd_write + drop + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @4 + i32.const 2340 + i32.const 0 + i32.store + end + end + global.get 1 + i32.eqz + if ;; label = @3 + return + end + end + local.get 2 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.lookupPanic + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.lookupPanic (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2193 + i32.const 18 + call $runtime.runtimePanicAt + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.resume$1 (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $runtime.nilPanic + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.deadlock (type 0) + (local i32) + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + local.get 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $internal/task.Pause + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 0 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 2240 + call $runtime._panic + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.printitf (type 1) (param i32) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.load + local.set 1 + local.get 0 + i32.load offset=4 + local.set 0 + end + local.get 2 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 1 + local.get 0 + call $runtime.printstring + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + return + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store) + (func $runtime.markRoots (type 3) (param i32 i32) + (local i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 16 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=4 + local.set 1 + local.get 2 + i32.load offset=8 + local.set 3 + local.get 2 + i32.load offset=12 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 4 + end + loop ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 0 + local.get 1 + i32.ge_u + br_if 1 (;@3;) + local.get 0 + i32.load + local.tee 3 + i32.const 2816 + i32.lt_u + local.set 2 + end + block ;; label = @4 + global.get 1 + i32.eqz + if ;; label = @5 + local.get 2 + br_if 1 (;@4;) + local.get 3 + i32.const 2472 + i32.load + i32.ge_u + local.tee 2 + br_if 1 (;@4;) + local.get 3 + i32.const 2816 + i32.sub + i32.const 4 + i32.shr_u + local.tee 3 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.eqz + local.tee 2 + br_if 1 (;@4;) + local.get 3 + call $_runtime.gcBlock_.findHead + local.tee 3 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.const 3 + i32.eq + local.tee 2 + br_if 1 (;@4;) + end + local.get 4 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @5 + local.get 3 + call $runtime.startMark + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + end + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 0 + i32.const 4 + i32.add + local.set 0 + br 2 (;@2;) + end + end + end + return + end + local.set 4 + global.get 2 + i32.load + local.get 4 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 4 + local.get 0 + i32.store + local.get 4 + local.get 1 + i32.store offset=4 + local.get 4 + local.get 3 + i32.store offset=8 + local.get 4 + local.get 2 + i32.store offset=12 + global.get 2 + global.get 2 + i32.load + i32.const 16 + i32.add + i32.store) + (func $_runtime.gcBlock_.state (type 5) (param i32) (result i32) + i32.const 2472 + i32.load + local.get 0 + i32.const 2 + i32.shr_u + i32.add + i32.load8_u + local.get 0 + i32.const 1 + i32.shl + i32.const 6 + i32.and + i32.shr_u + i32.const 3 + i32.and) + (func $_runtime.gcBlock_.markFree (type 1) (param i32) + (local i32 i32) + i32.const 2472 + i32.load + local.get 0 + i32.const 2 + i32.shr_u + i32.add + local.tee 1 + i32.load8_u + local.set 2 + local.get 1 + local.get 2 + i32.const 3 + local.get 0 + i32.const 1 + i32.shl + i32.const 6 + i32.and + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store8) + (func $runtime.growHeap (type 6) (result i32) + (local i32 i32 i32) + memory.size + memory.grow + i32.const -1 + i32.ne + local.tee 1 + if ;; label = @1 + memory.size + local.set 0 + i32.const 2336 + i32.load + local.set 2 + i32.const 2336 + local.get 0 + i32.const 16 + i32.shl + i32.store + i32.const 2472 + i32.load + local.set 0 + call $runtime.calculateHeapAddresses + i32.const 2472 + i32.load + local.get 0 + local.get 2 + local.get 0 + i32.sub + memory.copy + end + local.get 1) + (func $runtime.startMark (type 1) (param i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 6 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const -64 + i32.add + local.tee 3 + global.set $__stack_pointer + local.get 3 + i32.const 4 + i32.add + i32.const 0 + i32.const 60 + memory.fill + local.get 3 + local.get 0 + i32.store + local.get 0 + i32.const 3 + call $_runtime.gcBlock_.setState + i32.const 1 + local.set 2 + block ;; label = @3 + loop ;; label = @4 + local.get 2 + i32.const 1 + i32.ge_s + if ;; label = @5 + local.get 2 + i32.const 1 + i32.sub + local.tee 2 + i32.const 15 + i32.gt_u + br_if 2 (;@3;) + local.get 3 + local.get 2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee 1 + i32.const 4 + i32.shl + local.set 0 + block ;; label = @6 + block ;; label = @7 + local.get 1 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.const 1 + i32.sub + br_table 0 (;@7;) 1 (;@6;) 0 (;@7;) 1 (;@6;) + end + local.get 1 + i32.const 1 + i32.add + local.set 1 + end + local.get 0 + i32.const 2816 + i32.add + local.set 5 + local.get 1 + i32.const 4 + i32.shl + local.tee 4 + local.get 0 + i32.sub + local.set 7 + local.get 4 + i32.const 2816 + i32.add + local.set 4 + i32.const 2472 + i32.load + local.set 8 + loop ;; label = @6 + block ;; label = @7 + local.get 7 + local.set 0 + local.get 4 + local.get 8 + i32.ge_u + br_if 0 (;@7;) + local.get 0 + i32.const 16 + i32.add + local.set 7 + local.get 4 + i32.const 16 + i32.add + local.set 4 + local.get 1 + call $_runtime.gcBlock_.state + local.set 9 + local.get 1 + i32.const 1 + i32.add + local.set 1 + local.get 9 + i32.const 255 + i32.and + i32.const 2 + i32.eq + br_if 1 (;@6;) + end + end + loop ;; label = @6 + local.get 0 + i32.eqz + br_if 2 (;@4;) + block ;; label = @7 + local.get 5 + i32.load + local.tee 1 + i32.const 2816 + i32.lt_u + br_if 0 (;@7;) + local.get 1 + i32.const 2472 + i32.load + i32.ge_u + br_if 0 (;@7;) + local.get 1 + i32.const 2816 + i32.sub + i32.const 4 + i32.shr_u + local.tee 1 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.eqz + br_if 0 (;@7;) + local.get 1 + call $_runtime.gcBlock_.findHead + local.tee 1 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.const 3 + i32.eq + br_if 0 (;@7;) + local.get 1 + i32.const 3 + call $_runtime.gcBlock_.setState + local.get 2 + i32.const 16 + i32.eq + if ;; label = @8 + i32.const 2513 + i32.const 1 + i32.store8 + i32.const 16 + local.set 2 + br 1 (;@7;) + end + local.get 2 + i32.const 15 + i32.gt_u + br_if 4 (;@3;) + local.get 3 + local.get 2 + i32.const 2 + i32.shl + i32.add + local.get 1 + i32.store + local.get 2 + i32.const 1 + i32.add + local.set 2 + end + local.get 0 + i32.const 4 + i32.sub + local.set 0 + local.get 5 + i32.const 4 + i32.add + local.set 5 + br 0 (;@6;) + end + unreachable + end + end + local.get 3 + i32.const -64 + i32.sub + global.set $__stack_pointer + return + end + end + local.get 6 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $runtime.lookupPanic + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $_runtime.gcBlock_.setState (type 3) (param i32 i32) + (local i32 i32) + i32.const 2472 + i32.load + local.get 0 + i32.const 2 + i32.shr_u + i32.add + local.tee 2 + i32.load8_u + local.set 3 + local.get 2 + local.get 3 + local.get 1 + local.get 0 + i32.const 1 + i32.shl + i32.const 6 + i32.and + i32.shl + i32.or + i32.store8) + (func $_runtime.gcBlock_.findHead (type 5) (param i32) (result i32) + (local i32 i32) + loop ;; label = @1 + local.get 0 + call $_runtime.gcBlock_.state + local.set 1 + local.get 0 + i32.const 1 + i32.sub + local.tee 2 + local.set 0 + local.get 1 + i32.const 255 + i32.and + i32.const 2 + i32.eq + br_if 0 (;@1;) + end + local.get 2 + i32.const 1 + i32.add) + (func $runtime.run$1 (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2336 + memory.size + i32.const 16 + i32.shl + i32.store + end + local.get 0 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2248 + i32.const 12 + call $github.com/project-mahiwa/mahiwa-frontend-go/serial.Println + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 0 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 3 + call $internal/task.start + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 0 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 1000 + call $delay + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2525 + i32.const 1 + i32.store8 + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $main.main$1$gowrapper (type 1) (param i32) + (local i32) + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + local.get 1 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $main.main$1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 1 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.deadlock + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.hashmapGet (type 2) (param i32 i32 i32 i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 52 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 4 + i32.load + local.set 0 + local.get 4 + i32.load offset=8 + local.set 2 + local.get 4 + i32.load offset=12 + local.set 3 + local.get 4 + i32.load offset=16 + local.set 5 + local.get 4 + i32.load offset=20 + local.set 6 + local.get 4 + i32.load offset=24 + local.set 7 + local.get 4 + i32.load offset=28 + local.set 8 + local.get 4 + i32.load offset=32 + local.set 9 + local.get 4 + i32.load offset=36 + local.set 10 + local.get 4 + i32.load offset=40 + local.set 11 + local.get 4 + i32.load offset=44 + local.set 12 + local.get 4 + i32.load offset=48 + local.set 13 + local.get 4 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 14 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 48 + i32.sub + local.tee 5 + global.set $__stack_pointer + local.get 5 + i32.const 32 + i32.add + i64.const 0 + i64.store + local.get 5 + i32.const 40 + i32.add + i32.const 0 + i32.store + local.get 5 + i64.const 0 + i64.store offset=24 + local.get 5 + i32.const 7 + i32.store offset=12 + i32.const 2516 + i32.load + local.set 9 + i32.const 2516 + local.get 5 + i32.const 8 + i32.add + i32.store + local.get 5 + local.get 9 + i32.store offset=8 + local.get 5 + local.get 0 + local.get 3 + call $runtime.hashmapBucketAddrForHash + local.tee 6 + i32.store offset=16 + local.get 3 + i32.const 24 + i32.shr_u + local.tee 3 + i32.const 1 + local.get 3 + select + local.set 10 + end + block ;; label = @2 + block ;; label = @3 + loop ;; label = @4 + block ;; label = @5 + global.get 1 + i32.eqz + if ;; label = @6 + local.get 5 + local.get 6 + i32.store offset=20 + local.get 6 + i32.eqz + br_if 1 (;@5;) + i32.const 0 + local.set 3 + end + loop ;; label = @6 + block ;; label = @7 + global.get 1 + i32.eqz + if ;; label = @8 + local.get 3 + i32.const 8 + i32.eq + local.tee 7 + br_if 1 (;@7;) + local.get 5 + local.get 6 + local.get 0 + i32.load offset=12 + local.tee 7 + local.get 3 + i32.mul + i32.add + i32.const 12 + i32.add + local.tee 11 + i32.store offset=24 + local.get 5 + local.get 6 + local.get 0 + i32.load offset=16 + local.get 3 + i32.mul + local.get 7 + i32.const 3 + i32.shl + i32.add + i32.add + i32.const 12 + i32.add + local.tee 12 + i32.store offset=28 + local.get 10 + local.get 3 + local.get 6 + i32.add + i32.load8_u + i32.ne + local.set 8 + end + block ;; label = @8 + global.get 1 + i32.eqz + if ;; label = @9 + local.get 8 + br_if 1 (;@8;) + local.get 5 + local.get 0 + i32.load offset=24 + local.tee 13 + i32.store offset=32 + local.get 5 + local.get 0 + i32.load offset=28 + local.tee 8 + i32.store offset=36 + local.get 8 + i32.eqz + br_if 7 (;@2;) + end + local.get 14 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @9 + local.get 1 + local.get 11 + local.get 7 + local.get 13 + local.get 8 + call_indirect (type 2) + local.set 4 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 8 (;@1;) + drop + local.get 4 + local.set 7 + end + global.get 1 + i32.eqz + if ;; label = @9 + local.get 7 + i32.const 1 + i32.and + i32.eqz + local.tee 7 + br_if 1 (;@8;) + local.get 2 + local.get 12 + local.get 0 + i32.load offset=16 + memory.copy + br 6 (;@3;) + end + end + global.get 1 + i32.eqz + if ;; label = @8 + local.get 3 + i32.const 1 + i32.add + local.set 3 + br 2 (;@6;) + end + end + end + global.get 1 + i32.eqz + if ;; label = @6 + local.get 5 + local.get 6 + i32.load offset=8 + local.tee 6 + i32.store offset=40 + br 2 (;@4;) + end + end + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 2 + i32.const 0 + local.get 0 + i32.load offset=16 + memory.fill + end + end + global.get 1 + i32.eqz + if ;; label = @3 + i32.const 2516 + local.get 9 + i32.store + local.get 5 + i32.const 48 + i32.add + global.set $__stack_pointer + local.get 6 + i32.const 0 + i32.ne + return + end + end + local.get 14 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.nilPanic + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + unreachable + end + local.set 4 + global.get 2 + i32.load + local.get 4 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 4 + local.get 0 + i32.store + local.get 4 + local.get 1 + i32.store offset=4 + local.get 4 + local.get 2 + i32.store offset=8 + local.get 4 + local.get 3 + i32.store offset=12 + local.get 4 + local.get 5 + i32.store offset=16 + local.get 4 + local.get 6 + i32.store offset=20 + local.get 4 + local.get 7 + i32.store offset=24 + local.get 4 + local.get 8 + i32.store offset=28 + local.get 4 + local.get 9 + i32.store offset=32 + local.get 4 + local.get 10 + i32.store offset=36 + local.get 4 + local.get 11 + i32.store offset=40 + local.get 4 + local.get 12 + i32.store offset=44 + local.get 4 + local.get 13 + i32.store offset=48 + global.get 2 + global.get 2 + i32.load + i32.const 52 + i32.add + i32.store + i32.const 0) + (func $runtime.hashmapBucketAddrForHash (type 4) (param i32 i32) (result i32) + (local i32 i32) + local.get 0 + i32.load + local.set 2 + local.get 0 + i32.load offset=16 + local.get 0 + i32.load offset=12 + i32.add + i32.const 3 + i32.shl + i32.const 12 + i32.add + local.set 3 + local.get 2 + local.get 3 + local.get 1 + i32.const -1 + i32.const -1 + local.get 0 + i32.load8_u offset=20 + local.tee 0 + i32.shl + i32.const -1 + i32.xor + local.get 0 + i32.const 31 + i32.gt_u + select + i32.and + i32.mul + i32.add) + (func $runtime.hashmapSet (type 7) (param i32 i32 i32 i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const -64 + i32.add + i32.store + global.get 2 + i32.load + local.tee 5 + i32.load + local.set 0 + local.get 5 + i32.load offset=8 + local.set 2 + local.get 5 + i32.load offset=12 + local.set 3 + local.get 5 + i32.load offset=16 + local.set 4 + local.get 5 + i32.load offset=20 + local.set 6 + local.get 5 + i32.load offset=24 + local.set 8 + local.get 5 + i32.load offset=28 + local.set 7 + local.get 5 + i32.load offset=32 + local.set 9 + local.get 5 + i32.load offset=36 + local.set 10 + local.get 5 + i32.load offset=40 + local.set 11 + local.get 5 + i32.load offset=44 + local.set 12 + local.get 5 + i32.load offset=48 + local.set 14 + local.get 5 + i32.load offset=52 + local.set 15 + local.get 5 + i32.load offset=56 + local.set 16 + local.get 5 + i32.load offset=60 + local.set 17 + local.get 5 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 13 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 272 + i32.sub + local.tee 4 + global.set $__stack_pointer + local.get 4 + i32.const 55 + i32.store offset=44 + local.get 4 + i32.const 48 + i32.add + i32.const 0 + i32.const 220 + memory.fill + local.get 4 + i32.const 2516 + i32.load + local.tee 17 + i32.store offset=40 + i32.const 2516 + local.get 4 + i32.const 40 + i32.add + i32.store + local.get 0 + i32.eqz + local.set 6 + end + block ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 6 + br_if 1 (;@3;) + local.get 0 + i32.load8_u offset=20 + local.tee 8 + i32.const 29 + i32.gt_u + local.set 6 + end + block ;; label = @4 + global.get 1 + i32.eqz + if ;; label = @5 + local.get 6 + br_if 1 (;@4;) + local.get 0 + i32.load offset=8 + local.tee 9 + i32.const 6 + local.get 8 + i32.shl + i32.le_u + local.tee 6 + br_if 1 (;@4;) + local.get 4 + i64.const 0 + i64.store offset=16 + local.get 4 + local.get 0 + i32.load offset=36 + local.tee 3 + i32.store offset=64 + local.get 4 + local.get 0 + i32.load offset=32 + local.tee 6 + i32.store offset=60 + local.get 4 + local.get 0 + i32.load offset=28 + local.tee 7 + i32.store offset=56 + local.get 4 + local.get 0 + i32.load offset=24 + local.tee 10 + i32.store offset=52 + local.get 4 + local.get 0 + i32.load + i32.store offset=48 + local.get 4 + local.get 3 + i32.store offset=36 + local.get 4 + local.get 6 + i32.store offset=32 + local.get 4 + local.get 7 + i32.store offset=28 + local.get 4 + local.get 10 + i32.store offset=24 + local.get 4 + local.get 0 + i32.load offset=16 + i32.store offset=16 + local.get 4 + local.get 0 + i32.load offset=12 + i32.store offset=12 + i32.const 2272 + i32.load + local.tee 3 + i32.const 7 + i32.shl + local.set 6 + local.get 3 + local.get 6 + i32.xor + local.tee 3 + i32.const 1 + i32.shr_u + local.set 6 + local.get 3 + local.get 6 + i32.xor + local.tee 3 + i32.const 9 + i32.shl + local.set 6 + i32.const 2272 + local.get 3 + local.get 6 + i32.xor + local.tee 3 + i32.store + local.get 4 + i32.const 0 + i32.store offset=8 + local.get 4 + local.get 3 + i32.store offset=4 + local.get 4 + local.get 8 + i32.const 1 + i32.add + local.tee 3 + i32.store8 offset=20 + local.get 0 + i32.load offset=12 + local.tee 9 + local.get 0 + i32.load offset=16 + i32.add + i32.const 3 + i32.shl + i32.const 12 + i32.add + local.tee 6 + local.get 3 + i32.shl + local.set 3 + end + local.get 13 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @5 + local.get 3 + call $runtime.alloc + local.set 5 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 5 + local.set 3 + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 4 + local.get 3 + i32.store + local.get 4 + local.get 3 + i32.store offset=68 + local.get 0 + i32.load offset=12 + local.set 3 + end + local.get 13 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 3 + call $runtime.alloc + local.set 5 + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 5 + local.set 6 + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 4 + local.get 6 + i32.store offset=72 + local.get 0 + i32.load offset=16 + local.set 3 + end + local.get 13 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 3 + call $runtime.alloc + local.set 5 + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 5 + local.set 14 + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 4 + local.get 14 + i32.store offset=76 + i32.const 0 + local.set 9 + i32.const 0 + local.set 8 + i32.const 0 + local.set 16 + i32.const 0 + local.set 12 + i32.const 0 + local.set 3 + end + loop ;; label = @5 + global.get 1 + i32.eqz + if ;; label = @6 + local.get 4 + local.get 12 + i32.store offset=80 + local.get 12 + i32.eqz + if ;; label = @7 + local.get 4 + local.get 0 + i32.load + local.tee 12 + i32.store offset=84 + i32.const 0 + i32.const 1 + local.get 0 + i32.load8_u offset=20 + local.tee 7 + i32.shl + local.tee 10 + local.get 7 + i32.const 31 + i32.gt_u + local.tee 7 + select + local.set 16 + end + local.get 4 + local.get 12 + i32.store offset=100 + local.get 4 + local.get 12 + i32.store offset=120 + end + block ;; label = @6 + loop ;; label = @7 + global.get 1 + i32.eqz + if ;; label = @8 + local.get 4 + local.get 3 + i32.store offset=88 + local.get 8 + i32.const 255 + i32.and + i32.const 8 + i32.lt_u + local.tee 7 + i32.eqz + if ;; label = @9 + local.get 3 + i32.eqz + br_if 6 (;@3;) + local.get 4 + local.get 3 + i32.load offset=8 + local.tee 3 + i32.store offset=92 + i32.const 0 + local.set 8 + end + local.get 4 + local.get 3 + i32.store offset=96 + local.get 3 + i32.eqz + if ;; label = @9 + local.get 9 + local.get 16 + i32.ge_u + local.tee 3 + br_if 3 (;@6;) + local.get 4 + local.get 12 + local.get 9 + local.get 0 + i32.load offset=16 + local.get 0 + i32.load offset=12 + i32.add + i32.const 3 + i32.shl + i32.const 12 + i32.add + i32.mul + i32.add + local.tee 3 + i32.store offset=104 + local.get 9 + i32.const 1 + i32.add + local.set 9 + end + local.get 4 + local.get 3 + i32.store offset=112 + local.get 4 + local.get 3 + i32.store offset=128 + local.get 4 + local.get 3 + i32.store offset=108 + local.get 3 + i32.eqz + br_if 5 (;@3;) + local.get 8 + i32.const 255 + i32.and + local.tee 10 + local.get 3 + i32.add + i32.load8_u + local.tee 7 + i32.eqz + if ;; label = @9 + local.get 8 + i32.const 1 + i32.add + local.set 8 + br 2 (;@7;) + end + local.get 4 + local.get 10 + local.get 0 + i32.load offset=12 + local.tee 7 + i32.mul + local.get 3 + i32.add + i32.const 12 + i32.add + local.tee 11 + i32.store offset=116 + local.get 6 + local.get 11 + local.get 7 + memory.copy + local.get 4 + local.get 0 + i32.load + local.tee 11 + i32.store offset=124 + local.get 11 + local.get 12 + i32.ne + local.set 11 + end + block ;; label = @8 + global.get 1 + i32.eqz + if ;; label = @9 + local.get 11 + i32.eqz + if ;; label = @10 + local.get 7 + i32.const 3 + i32.shl + local.set 11 + local.get 4 + local.get 11 + local.get 10 + local.get 0 + i32.load offset=16 + local.tee 7 + i32.mul + i32.add + local.get 3 + i32.add + i32.const 12 + i32.add + local.tee 10 + i32.store offset=132 + local.get 14 + local.get 10 + local.get 7 + memory.copy + local.get 8 + i32.const 1 + i32.add + local.set 8 + br 2 (;@8;) + end + local.get 4 + local.get 0 + i32.load offset=32 + local.tee 11 + i32.store offset=136 + local.get 4 + local.get 0 + i32.load offset=36 + local.tee 10 + i32.store offset=140 + local.get 10 + i32.eqz + br_if 6 (;@3;) + local.get 0 + i32.load offset=4 + local.set 15 + local.get 8 + i32.const 1 + i32.add + local.set 8 + end + local.get 13 + i32.const 3 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @9 + local.get 6 + local.get 7 + local.get 15 + local.get 11 + local.get 10 + call_indirect (type 2) + local.set 5 + i32.const 3 + global.get 1 + i32.const 1 + i32.eq + br_if 8 (;@1;) + drop + local.get 5 + local.set 7 + end + local.get 13 + i32.const 4 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @9 + local.get 0 + local.get 6 + local.get 14 + local.get 7 + call $runtime.hashmapGet + local.set 5 + i32.const 4 + global.get 1 + i32.const 1 + i32.eq + br_if 8 (;@1;) + drop + local.get 5 + local.set 7 + end + global.get 1 + i32.eqz + if ;; label = @9 + local.get 7 + i32.const 1 + i32.and + i32.eqz + local.tee 7 + br_if 2 (;@7;) + end + end + end + global.get 1 + i32.eqz + if ;; label = @7 + local.get 4 + local.get 4 + i32.load offset=32 + local.tee 10 + i32.store offset=144 + local.get 4 + local.get 4 + i32.load offset=36 + local.tee 7 + i32.store offset=148 + local.get 7 + i32.eqz + br_if 4 (;@3;) + local.get 4 + i32.load offset=4 + local.set 15 + local.get 4 + i32.load offset=12 + local.set 11 + end + local.get 13 + i32.const 5 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @7 + local.get 6 + local.get 11 + local.get 15 + local.get 10 + local.get 7 + call_indirect (type 2) + local.set 5 + i32.const 5 + global.get 1 + i32.const 1 + i32.eq + br_if 6 (;@1;) + drop + local.get 5 + local.set 7 + end + local.get 13 + i32.const 6 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @7 + local.get 4 + local.get 6 + local.get 14 + local.get 7 + call $runtime.hashmapSet + i32.const 6 + global.get 1 + i32.const 1 + i32.eq + br_if 6 (;@1;) + drop + end + global.get 1 + i32.eqz + br_if 1 (;@5;) + end + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 0 + local.get 4 + i32.load + local.tee 3 + i32.store + local.get 0 + local.get 4 + i64.load offset=4 align=4 + i64.store offset=4 align=4 + local.get 0 + local.get 4 + i64.load offset=12 align=4 + i64.store offset=12 align=4 + local.get 0 + local.get 4 + i32.load8_u offset=20 + i32.store8 offset=20 + local.get 0 + local.get 4 + i32.load offset=24 + local.tee 8 + i32.store offset=24 + local.get 0 + local.get 4 + i32.load offset=28 + local.tee 6 + i32.store offset=28 + local.get 0 + local.get 4 + i32.load offset=32 + local.tee 7 + i32.store offset=32 + local.get 0 + local.get 4 + i32.load offset=36 + local.tee 10 + i32.store offset=36 + local.get 4 + local.get 3 + i32.store offset=152 + local.get 4 + local.get 8 + i32.store offset=156 + local.get 4 + local.get 6 + i32.store offset=160 + local.get 4 + local.get 7 + i32.store offset=164 + local.get 4 + local.get 10 + i32.store offset=168 + local.get 4 + local.get 0 + i32.load offset=32 + local.tee 8 + i32.store offset=172 + local.get 4 + local.get 0 + i32.load offset=36 + local.tee 3 + i32.store offset=176 + local.get 3 + i32.eqz + br_if 2 (;@3;) + local.get 0 + i32.load offset=4 + local.set 9 + local.get 0 + i32.load offset=12 + local.set 6 + end + local.get 13 + i32.const 7 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 1 + local.get 6 + local.get 9 + local.get 8 + local.get 3 + call_indirect (type 2) + local.set 5 + i32.const 7 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 5 + local.set 3 + end + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 4 + local.get 0 + local.get 3 + call $runtime.hashmapBucketAddrForHash + local.tee 9 + i32.store offset=180 + local.get 3 + i32.const 24 + i32.shr_u + local.tee 3 + i32.const 1 + local.get 3 + select + local.set 15 + i32.const 0 + local.set 8 + i32.const 0 + local.set 10 + i32.const 0 + local.set 7 + i32.const 0 + local.set 3 + end + loop ;; label = @4 + block ;; label = @5 + global.get 1 + i32.eqz + if ;; label = @6 + local.get 4 + local.get 3 + i32.store offset=196 + local.get 4 + local.get 9 + local.tee 6 + i32.store offset=200 + local.get 4 + local.get 8 + i32.store offset=192 + local.get 4 + local.get 10 + i32.store offset=188 + local.get 4 + local.get 7 + i32.store offset=184 + local.get 6 + i32.eqz + local.tee 9 + br_if 1 (;@5;) + i32.const 0 + local.set 3 + end + loop ;; label = @6 + block ;; label = @7 + global.get 1 + i32.eqz + if ;; label = @8 + local.get 4 + local.get 10 + i32.store offset=208 + local.get 4 + local.get 8 + i32.store offset=212 + local.get 4 + local.get 7 + i32.store offset=204 + local.get 3 + i32.const 8 + i32.eq + br_if 1 (;@7;) + local.get 4 + local.get 0 + i32.load offset=12 + local.tee 12 + local.get 3 + i32.mul + local.get 6 + i32.add + i32.const 12 + i32.add + local.tee 14 + i32.store offset=216 + local.get 4 + local.get 0 + i32.load offset=16 + local.get 3 + i32.mul + local.get 12 + i32.const 3 + i32.shl + i32.add + local.get 6 + i32.add + i32.const 12 + i32.add + local.tee 16 + i32.store offset=220 + local.get 4 + local.get 8 + local.get 14 + local.get 3 + local.get 6 + i32.add + local.tee 9 + i32.load8_u + local.get 8 + i32.or + local.tee 11 + select + local.tee 8 + i32.store offset=232 + local.get 4 + local.get 7 + local.get 9 + local.get 11 + select + local.tee 7 + i32.store offset=224 + local.get 4 + local.get 10 + local.get 16 + local.get 11 + select + local.tee 10 + i32.store offset=228 + local.get 15 + local.get 9 + i32.load8_u + i32.ne + local.set 9 + end + block ;; label = @8 + global.get 1 + i32.eqz + if ;; label = @9 + local.get 9 + br_if 1 (;@8;) + local.get 4 + local.get 0 + i32.load offset=24 + local.tee 11 + i32.store offset=236 + local.get 4 + local.get 0 + i32.load offset=28 + local.tee 9 + i32.store offset=240 + local.get 9 + i32.eqz + br_if 6 (;@3;) + end + local.get 13 + i32.const 8 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @9 + local.get 1 + local.get 14 + local.get 12 + local.get 11 + local.get 9 + call_indirect (type 2) + local.set 5 + i32.const 8 + global.get 1 + i32.const 1 + i32.eq + br_if 8 (;@1;) + drop + local.get 5 + local.set 9 + end + global.get 1 + i32.eqz + if ;; label = @9 + local.get 9 + i32.const 1 + i32.and + i32.eqz + local.tee 9 + br_if 1 (;@8;) + local.get 16 + local.get 2 + local.get 0 + i32.load offset=16 + memory.copy + br 7 (;@2;) + end + end + global.get 1 + i32.eqz + if ;; label = @8 + local.get 3 + i32.const 1 + i32.add + local.set 3 + br 2 (;@6;) + end + end + end + global.get 1 + i32.eqz + if ;; label = @6 + local.get 4 + local.get 6 + i32.load offset=8 + local.tee 9 + i32.store offset=244 + local.get 6 + local.set 3 + br 2 (;@4;) + end + end + end + block ;; label = @4 + global.get 1 + i32.eqz + if ;; label = @5 + local.get 8 + br_if 1 (;@4;) + local.get 0 + i32.load offset=16 + local.get 0 + i32.load offset=12 + i32.add + i32.const 3 + i32.shl + i32.const 12 + i32.add + local.set 6 + end + local.get 13 + i32.const 9 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 6 + call $runtime.alloc + local.set 5 + i32.const 9 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 5 + local.set 8 + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 0 + local.get 0 + i32.load offset=8 + i32.const 1 + i32.add + i32.store offset=8 + local.get 4 + local.get 8 + i32.store offset=252 + local.get 4 + local.get 8 + i32.store offset=264 + local.get 4 + local.get 8 + i32.store offset=248 + local.get 4 + local.get 8 + i32.const 12 + i32.add + local.tee 6 + i32.store offset=256 + local.get 4 + local.get 0 + i32.load offset=12 + local.tee 7 + i32.const 3 + i32.shl + local.get 6 + i32.add + local.tee 10 + i32.store offset=260 + local.get 6 + local.get 1 + local.get 7 + memory.copy + local.get 10 + local.get 2 + local.get 0 + i32.load offset=16 + memory.copy + local.get 8 + local.get 15 + i32.store8 + local.get 3 + i32.eqz + br_if 2 (;@3;) + local.get 3 + local.get 8 + i32.store offset=8 + br 3 (;@2;) + end + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 0 + local.get 0 + i32.load offset=8 + i32.const 1 + i32.add + i32.store offset=8 + local.get 8 + local.get 1 + local.get 0 + i32.load offset=12 + memory.copy + local.get 10 + local.get 2 + local.get 0 + i32.load offset=16 + memory.copy + local.get 7 + i32.eqz + br_if 1 (;@3;) + local.get 7 + local.get 15 + i32.store8 + br 2 (;@2;) + end + end + local.get 13 + i32.const 10 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @3 + call $runtime.nilPanic + i32.const 10 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + unreachable + end + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2516 + local.get 17 + i32.store + local.get 4 + i32.const 272 + i32.add + global.set $__stack_pointer + end + return + end + local.set 5 + global.get 2 + i32.load + local.get 5 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 5 + local.get 0 + i32.store + local.get 5 + local.get 1 + i32.store offset=4 + local.get 5 + local.get 2 + i32.store offset=8 + local.get 5 + local.get 3 + i32.store offset=12 + local.get 5 + local.get 4 + i32.store offset=16 + local.get 5 + local.get 6 + i32.store offset=20 + local.get 5 + local.get 8 + i32.store offset=24 + local.get 5 + local.get 7 + i32.store offset=28 + local.get 5 + local.get 9 + i32.store offset=32 + local.get 5 + local.get 10 + i32.store offset=36 + local.get 5 + local.get 11 + i32.store offset=40 + local.get 5 + local.get 12 + i32.store offset=44 + local.get 5 + local.get 14 + i32.store offset=48 + local.get 5 + local.get 15 + i32.store offset=52 + local.get 5 + local.get 16 + i32.store offset=56 + local.get 5 + local.get 17 + i32.store offset=60 + global.get 2 + global.get 2 + i32.load + i32.const -64 + i32.sub + i32.store) + (func $main.main$1 (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2260 + i32.const 9 + call $github.com/project-mahiwa/mahiwa-frontend-go/serial.Println + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $malloc.command_export (type 5) (param i32) (result i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + call $malloc + local.set 1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 1 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + local.get 0 + return + end + unreachable + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + i32.const 0) + (func $free.command_export (type 1) (param i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + call $free + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $calloc.command_export (type 4) (param i32 i32) (result i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + local.get 1 + call $calloc + local.set 2 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 2 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + local.get 0 + return + end + unreachable + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store + i32.const 0) + (func $realloc.command_export (type 4) (param i32 i32) (result i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + local.get 1 + call $realloc + local.set 2 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 2 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + local.get 0 + return + end + unreachable + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store + i32.const 0) + (func $_start.command_export (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $_start + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $resume.command_export (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $resume + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $go_scheduler.command_export (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $go_scheduler + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $asyncify_start_unwind (type 1) (param i32) + i32.const 1 + global.set 1 + local.get 0 + global.set 2 + global.get 2 + i32.load + global.get 2 + i32.load offset=4 + i32.gt_u + if ;; label = @1 + unreachable + end) + (func $asyncify_stop_unwind (type 0) + i32.const 0 + global.set 1 + global.get 2 + i32.load + global.get 2 + i32.load offset=4 + i32.gt_u + if ;; label = @1 + unreachable + end) + (func $asyncify_start_rewind (type 1) (param i32) + i32.const 2 + global.set 1 + local.get 0 + global.set 2 + global.get 2 + i32.load + global.get 2 + i32.load offset=4 + i32.gt_u + if ;; label = @1 + unreachable + end) + (func $asyncify_stop_rewind (type 0) + i32.const 0 + global.set 1 + global.get 2 + i32.load + global.get 2 + i32.load offset=4 + i32.gt_u + if ;; label = @1 + unreachable + end) + (func $asyncify_get_state (type 6) (result i32) + global.get 1) + (table (;0;) 6 6 funcref) + (memory (;0;) 1 1) + (global $__stack_pointer (mut i32) (i32.const 2048)) + (global (;1;) (mut i32) (i32.const 0)) + (global (;2;) (mut i32) (i32.const 0)) + (export "memory" (memory 0)) + (export "malloc" (func $malloc.command_export)) + (export "free" (func $free.command_export)) + (export "calloc" (func $calloc.command_export)) + (export "realloc" (func $realloc.command_export)) + (export "_start" (func $_start.command_export)) + (export "resume" (func $resume.command_export)) + (export "go_scheduler" (func $go_scheduler.command_export)) + (export "asyncify_start_unwind" (func $asyncify_start_unwind)) + (export "asyncify_stop_unwind" (func $asyncify_stop_unwind)) + (export "asyncify_start_rewind" (func $asyncify_start_rewind)) + (export "asyncify_stop_rewind" (func $asyncify_stop_rewind)) + (export "asyncify_get_state" (func $asyncify_get_state)) + (elem (;0;) (i32.const 1) func $runtime.run$1$gowrapper $runtime.resume$1$gowrapper $main.main$1$gowrapper $runtime.memequal $runtime.hash32) + (data $.rodata (i32.const 2048) "\0astack overflowfree: invalid pointer\00\00\00\00\0f\08\00\00\15\00\00\00realloc: invalid pointer0\08\00\00\18\00\00\00out of memorypanic: panic: runtime error: nil pointer dereferenceindex out of rangeslice out of rangeunreachable\b5\08\00\00\0b\00\00\00main routinegoroutine") + (data $.data (i32.const 2272) "\c1\82\01\00(\09\00\00\00\00\00\00\e0\09\00\00\c1\82\01\00\00\00\00\00\04\00\00\00\0c\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05")) diff --git a/_examples/goroutine_test/target.json b/_examples/goroutine_test/target.json new file mode 100644 index 0000000..acff0f3 --- /dev/null +++ b/_examples/goroutine_test/target.json @@ -0,0 +1,8 @@ +{ + "inherits": ["wasm"], + "ldflags": [ + "--initial-memory=65536", + "--max-memory=65536", + "-zstack-size=2048" + ] +} From 5cafde315cfd432f2575ae1934c775a5c34ffdc3 Mon Sep 17 00:00:00 2001 From: usuyuki <63891531+usuyuki@users.noreply.github.com> Date: Fri, 15 Dec 2023 10:49:32 +0900 Subject: [PATCH 2/3] =?UTF-8?q?refactor=20=E4=BD=BF=E3=81=88=E3=81=AA?= =?UTF-8?q?=E3=81=84=E3=82=82=E3=81=AE=E3=81=AF=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=82=92=E5=88=86=E3=81=91=E3=81=A6=E6=98=8E=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => not_support}/goroutine_test/Makefile | 0 .../{ => not_support}/goroutine_test/go.mod | 4 ++-- .../{ => not_support}/goroutine_test/main.go | 0 .../goroutine_test/main.wasm | Bin 86506 -> 86462 bytes .../{ => not_support}/goroutine_test/main.wat | 0 .../goroutine_test/target.json | 0 6 files changed, 2 insertions(+), 2 deletions(-) rename _examples/{ => not_support}/goroutine_test/Makefile (100%) rename _examples/{ => not_support}/goroutine_test/go.mod (59%) rename _examples/{ => not_support}/goroutine_test/main.go (100%) rename _examples/{ => not_support}/goroutine_test/main.wasm (83%) rename _examples/{ => not_support}/goroutine_test/main.wat (100%) rename _examples/{ => not_support}/goroutine_test/target.json (100%) diff --git a/_examples/goroutine_test/Makefile b/_examples/not_support/goroutine_test/Makefile similarity index 100% rename from _examples/goroutine_test/Makefile rename to _examples/not_support/goroutine_test/Makefile diff --git a/_examples/goroutine_test/go.mod b/_examples/not_support/goroutine_test/go.mod similarity index 59% rename from _examples/goroutine_test/go.mod rename to _examples/not_support/goroutine_test/go.mod index c972386..53cac4b 100644 --- a/_examples/goroutine_test/go.mod +++ b/_examples/not_support/goroutine_test/go.mod @@ -1,7 +1,7 @@ -module github.com/project-mahiwa/mahiwa-frontend-go/_examples/goroutine_test +module github.com/project-mahiwa/mahiwa-frontend-go/_examples/not_support/goroutine_test go 1.21.3 require github.com/project-mahiwa/mahiwa-frontend-go v0.0.0-00010101000000-000000000000 -replace github.com/project-mahiwa/mahiwa-frontend-go => ../../../mahiwa-frontend-go +replace github.com/project-mahiwa/mahiwa-frontend-go => ../../../../mahiwa-frontend-go diff --git a/_examples/goroutine_test/main.go b/_examples/not_support/goroutine_test/main.go similarity index 100% rename from _examples/goroutine_test/main.go rename to _examples/not_support/goroutine_test/main.go diff --git a/_examples/goroutine_test/main.wasm b/_examples/not_support/goroutine_test/main.wasm similarity index 83% rename from _examples/goroutine_test/main.wasm rename to _examples/not_support/goroutine_test/main.wasm index 7c3d67234ceefe4f0ad4aec0be3bf8ef10a3b93d..55e2cf16c4348c0ff4bcc8b56b74ed843370d8b8 100755 GIT binary patch delta 5468 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 Q(2t58J~4Nlt>y9jf1W4O!vFvP delta 5504 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 diff --git a/_examples/goroutine_test/main.wat b/_examples/not_support/goroutine_test/main.wat similarity index 100% rename from _examples/goroutine_test/main.wat rename to _examples/not_support/goroutine_test/main.wat diff --git a/_examples/goroutine_test/target.json b/_examples/not_support/goroutine_test/target.json similarity index 100% rename from _examples/goroutine_test/target.json rename to _examples/not_support/goroutine_test/target.json From ab0e887bad76fe2ac5f025fcf720064cdb75f85e Mon Sep 17 00:00:00 2001 From: usuyuki <63891531+usuyuki@users.noreply.github.com> Date: Fri, 15 Dec 2023 12:29:59 +0900 Subject: [PATCH 3/3] wip tinygo-func --- .../not_support/tinygo_func_test/Makefile | 7 + _examples/not_support/tinygo_func_test/go.mod | 7 + .../not_support/tinygo_func_test/main.go | 19 + .../not_support/tinygo_func_test/main.wasm | Bin 0 -> 85827 bytes .../not_support/tinygo_func_test/main.wat | 7270 +++++++++++++++++ .../not_support/tinygo_func_test/target.json | 8 + 6 files changed, 7311 insertions(+) create mode 100644 _examples/not_support/tinygo_func_test/Makefile create mode 100644 _examples/not_support/tinygo_func_test/go.mod create mode 100644 _examples/not_support/tinygo_func_test/main.go create mode 100755 _examples/not_support/tinygo_func_test/main.wasm create mode 100644 _examples/not_support/tinygo_func_test/main.wat create mode 100644 _examples/not_support/tinygo_func_test/target.json diff --git a/_examples/not_support/tinygo_func_test/Makefile b/_examples/not_support/tinygo_func_test/Makefile new file mode 100644 index 0000000..c13e444 --- /dev/null +++ b/_examples/not_support/tinygo_func_test/Makefile @@ -0,0 +1,7 @@ +r: + tinygo build -target ./target.json -o main.wasm main.go + cp main.wasm /home/usuyuki/.cache/mahiwa/user.wasm + wasm2wat /home/usuyuki/.cache/mahiwa/user.wasm -o /home/usuyuki/.cache/mahiwa/user.wat + (cd /home/usuyuki/.cache/mahiwa && xxd -i user.wasm > user.h) + cp /home/usuyuki/.cache/mahiwa/user.h /home/usuyuki/mahiwa_space/mahiwa-backend/src/wasm/user.h + diff --git a/_examples/not_support/tinygo_func_test/go.mod b/_examples/not_support/tinygo_func_test/go.mod new file mode 100644 index 0000000..9942a71 --- /dev/null +++ b/_examples/not_support/tinygo_func_test/go.mod @@ -0,0 +1,7 @@ +module github.com/project-mahiwa/mahiwa-frontend-go/_examples/not_support/tinygo_func_test + +go 1.21.3 + +require github.com/project-mahiwa/mahiwa-frontend-go v0.0.0-00010101000000-000000000000 + +replace github.com/project-mahiwa/mahiwa-frontend-go => ../../../../mahiwa-frontend-go diff --git a/_examples/not_support/tinygo_func_test/main.go b/_examples/not_support/tinygo_func_test/main.go new file mode 100644 index 0000000..1a40726 --- /dev/null +++ b/_examples/not_support/tinygo_func_test/main.go @@ -0,0 +1,19 @@ +package main + +import ( + "github.com/project-mahiwa/mahiwa-frontend-go/arduino" + "github.com/project-mahiwa/mahiwa-frontend-go/serial" +) + +// goroutineをしたとき、wasmでどう表現されているのかを見る。 +func main() { + serial.Println("TinyGo Func Test") + arduino.Delay(1000) // mainルーチンをgoroutineより先に終了させないためのdelay + // 普通のgoでは + // main routine + // goroutine + // の順で表示されるが、mahiwaで動かすと + // main routine + // Error: [trap] stack overflow () + // となり、実行不可 +} diff --git a/_examples/not_support/tinygo_func_test/main.wasm b/_examples/not_support/tinygo_func_test/main.wasm new file mode 100755 index 0000000000000000000000000000000000000000..4866e38d39c2de77874a2fdd1f759286deeb3f82 GIT binary patch literal 85827 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 VyS!x{8We6@bEol6^gImb{|{6V4d(y= literal 0 HcmV?d00001 diff --git a/_examples/not_support/tinygo_func_test/main.wat b/_examples/not_support/tinygo_func_test/main.wat new file mode 100644 index 0000000..18c1943 --- /dev/null +++ b/_examples/not_support/tinygo_func_test/main.wat @@ -0,0 +1,7270 @@ +(module + (type (;0;) (func)) + (type (;1;) (func (param i32))) + (type (;2;) (func (param i32 i32 i32 i32) (result i32))) + (type (;3;) (func (param i32 i32))) + (type (;4;) (func (param i32 i32) (result i32))) + (type (;5;) (func (param i32) (result i32))) + (type (;6;) (func (result i32))) + (type (;7;) (func (param i32 i32 i32 i32))) + (import "serial" "print" (func $print (type 3))) + (import "wasi_snapshot_preview1" "fd_write" (func $runtime.fd_write (type 2))) + (import "arduino" "delay" (func $delay (type 1))) + (func $tinygo_getCurrentStackPointer (type 6) (result i32) + global.get $__stack_pointer) + (func $tinygo_unwind (type 1) (param i32) + i32.const 2328 + i32.load8_u + if ;; label = @1 + call $asyncify_stop_rewind + i32.const 2328 + i32.const 0 + i32.store8 + else + local.get 0 + global.get $__stack_pointer + i32.store offset=4 + local.get 0 + call $asyncify_start_unwind + end) + (func $tinygo_launch (type 1) (param i32) + (local i32) + global.get $__stack_pointer + local.set 1 + local.get 0 + i32.load offset=12 + global.set $__stack_pointer + local.get 0 + i32.load offset=4 + local.get 0 + i32.load + call_indirect (type 1) + call $asyncify_stop_unwind + local.get 1 + global.set $__stack_pointer) + (func $tinygo_rewind (type 1) (param i32) + (local i32 i32 i32) + global.get $__stack_pointer + local.set 1 + local.get 0 + i32.load offset=12 + global.set $__stack_pointer + local.get 0 + i32.load offset=4 + local.set 2 + local.get 0 + i32.load + local.set 3 + i32.const 2328 + i32.const 1 + i32.store8 + local.get 0 + i32.const 8 + i32.add + call $asyncify_start_rewind + local.get 2 + local.get 3 + call_indirect (type 1) + call $asyncify_stop_unwind + local.get 1 + global.set $__stack_pointer) + (func $dummy (type 0) + nop) + (func $__wasm_call_dtors (type 0) + call $dummy + call $dummy) + (func $github.com/project-mahiwa/mahiwa-frontend-go/serial.Println (type 3) (param i32 i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + local.get 2 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + local.get 1 + call $print + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 2 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 2048 + i32.const 1 + call $print + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + return + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store) + (func $_*internal/task.Queue_.Pop (type 6) (result i32) + (local i32) + i32.const 2464 + i32.load + local.tee 0 + if ;; label = @1 + i32.const 2464 + local.get 0 + i32.load + i32.store + i32.const 2468 + i32.load + local.get 0 + i32.eq + if ;; label = @2 + i32.const 2468 + i32.const 0 + i32.store + end + local.get 0 + i32.const 0 + i32.store + end + local.get 0) + (func $_*internal/task.Task_.Resume (type 1) (param i32) + (local i32 i32 i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.load offset=16 + local.set 1 + local.get 0 + i32.const 2516 + i32.load + i32.store offset=16 + i32.const 2516 + local.get 1 + i32.store + i32.const 2332 + i32.load + local.set 1 + i32.const 2332 + local.get 0 + i32.store + local.get 0 + i32.const 20 + i32.add + local.set 3 + block ;; label = @3 + local.get 0 + i32.const 36 + i32.add + i32.load8_u + if ;; label = @4 + local.get 3 + call $tinygo_rewind + br 1 (;@3;) + end + local.get 3 + call $tinygo_launch + local.get 0 + i32.const 1 + i32.store8 offset=36 + end + i32.const 2332 + local.get 1 + i32.store + i32.const 2516 + i32.load + local.set 1 + i32.const 2516 + local.get 0 + i32.load offset=16 + i32.store + local.get 0 + local.get 1 + i32.store offset=16 + local.get 0 + i32.const 32 + i32.add + i32.load + local.get 0 + i32.const 28 + i32.add + i32.load + i32.ge_u + if ;; label = @3 + return + end + end + local.get 2 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $runtime.runtimePanic + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.runtimePanic (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2049 + i32.const 14 + call $runtime.runtimePanicAt + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $internal/task.start (type 1) (param i32) + (local i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 20 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=8 + local.set 3 + local.get 1 + i32.load offset=12 + local.set 4 + local.get 1 + i32.load offset=16 + local.set 5 + local.get 1 + i32.load offset=4 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 6 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 48 + i32.sub + local.tee 3 + global.set $__stack_pointer + local.get 3 + i32.const 24 + i32.add + i64.const 0 + i64.store + local.get 3 + i32.const 32 + i32.add + i64.const 0 + i64.store + local.get 3 + i32.const 40 + i32.add + i32.const 0 + i32.store + local.get 3 + i64.const 0 + i64.store offset=16 + local.get 3 + i32.const 7 + i32.store offset=12 + i32.const 2516 + i32.load + local.set 4 + i32.const 2516 + local.get 3 + i32.const 8 + i32.add + local.tee 2 + i32.store + local.get 3 + local.get 4 + i32.store offset=8 + end + local.get 6 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 48 + call $runtime.alloc + local.set 1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 1 + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 2 + local.get 0 + i32.store offset=20 + local.get 2 + i32.const 24 + i32.add + local.tee 0 + i32.const 0 + i32.store + local.get 3 + local.get 2 + i32.store offset=16 + local.get 2 + i32.const 28 + i32.add + local.set 5 + end + local.get 6 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 32768 + call $runtime.alloc + local.set 1 + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 1 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 5 + local.get 0 + i32.store + local.get 0 + i32.const -1204030091 + i32.store + local.get 2 + i32.const 32 + i32.add + local.get 0 + i32.const 32768 + i32.add + i32.store + i32.const 2468 + i32.load + local.tee 0 + if ;; label = @3 + local.get 0 + local.get 2 + i32.store + end + local.get 2 + i32.const 0 + i32.store + i32.const 2468 + local.get 2 + i32.store + i32.const 2464 + i32.load + i32.eqz + if ;; label = @3 + i32.const 2464 + local.get 2 + i32.store + end + i32.const 2516 + local.get 4 + i32.store + local.get 3 + i32.const 48 + i32.add + global.set $__stack_pointer + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 1 + local.get 0 + i32.store + local.get 1 + local.get 2 + i32.store offset=4 + local.get 1 + local.get 3 + i32.store offset=8 + local.get 1 + local.get 4 + i32.store offset=12 + local.get 1 + local.get 5 + i32.store offset=16 + global.get 2 + global.get 2 + i32.load + i32.const 20 + i32.add + i32.store) + (func $runtime.alloc (type 5) (param i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 28 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 3 + i32.load + local.set 0 + local.get 3 + i32.load offset=12 + local.set 4 + local.get 3 + i32.load offset=16 + local.set 5 + local.get 3 + i32.load offset=20 + local.set 6 + local.get 3 + i32.load offset=24 + local.set 7 + local.get 3 + i32.load offset=8 + local.set 2 + local.get 3 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 8 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.eqz + if ;; label = @3 + i32.const 2512 + return + end + i32.const 2488 + i32.const 2488 + i64.load + local.get 0 + i64.extend_i32_u + i64.add + i64.store + i32.const 2496 + i32.const 2496 + i64.load + i64.const 1 + i64.add + i64.store + local.get 0 + i32.const 15 + i32.add + i32.const 4 + i32.shr_u + local.set 7 + i32.const 2476 + i32.load + local.tee 4 + local.set 5 + i32.const 0 + local.set 6 + i32.const 0 + local.set 2 + end + loop ;; label = @2 + local.get 1 + local.get 4 + local.get 5 + i32.eq + global.get 1 + select + local.set 1 + block ;; label = @3 + block ;; label = @4 + block ;; label = @5 + block ;; label = @6 + global.get 1 + i32.eqz + if ;; label = @7 + local.get 1 + i32.eqz + if ;; label = @8 + local.get 2 + local.set 1 + br 2 (;@6;) + end + local.get 2 + i32.const 255 + i32.and + local.set 4 + i32.const 1 + local.set 1 + end + block ;; label = @7 + global.get 1 + i32.eqz + if ;; label = @8 + block ;; label = @9 + local.get 4 + br_table 3 (;@6;) 0 (;@9;) 2 (;@7;) + end + i32.const 2516 + i32.load + drop + i32.const 2332 + i32.load + local.set 2 + end + block ;; label = @8 + global.get 1 + i32.eqz + if ;; label = @9 + local.get 2 + br_if 1 (;@8;) + call $tinygo_getCurrentStackPointer + local.set 2 + end + local.get 8 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @9 + local.get 2 + i32.const 2048 + call $runtime.markRoots + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 8 (;@1;) + drop + end + end + local.get 8 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @8 + i32.const 2048 + i32.const 2816 + call $runtime.markRoots + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 7 (;@1;) + drop + end + loop ;; label = @8 + global.get 1 + i32.eqz + if ;; label = @9 + i32.const 2513 + i32.load8_u + i32.eqz + if ;; label = @10 + i32.const 0 + local.set 2 + i32.const 0 + local.set 4 + i32.const 0 + local.set 1 + loop ;; label = @11 + block ;; label = @12 + block ;; label = @13 + local.get 1 + i32.const 2480 + i32.load + i32.lt_u + if ;; label = @14 + block ;; label = @15 + block ;; label = @16 + block ;; label = @17 + block ;; label = @18 + local.get 1 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.const 1 + i32.sub + br_table 0 (;@18;) 1 (;@17;) 2 (;@16;) 3 (;@15;) + end + local.get 1 + call $_runtime.gcBlock_.markFree + i32.const 2504 + i32.const 2504 + i64.load + i64.const 1 + i64.add + i64.store + br 4 (;@13;) + end + local.get 4 + i32.const 1 + i32.and + local.set 3 + i32.const 0 + local.set 4 + local.get 3 + i32.eqz + br_if 4 (;@12;) + local.get 1 + call $_runtime.gcBlock_.markFree + br 3 (;@13;) + end + i32.const 0 + local.set 4 + i32.const 2472 + i32.load + local.get 1 + i32.const 2 + i32.shr_u + i32.add + local.tee 3 + i32.load8_u + i32.const 2 + local.get 1 + i32.const 1 + i32.shl + i32.const 6 + i32.and + i32.shl + i32.const -1 + i32.xor + i32.and + local.set 9 + local.get 3 + local.get 9 + i32.store8 + br 3 (;@12;) + end + local.get 2 + i32.const 16 + i32.add + local.set 2 + br 2 (;@12;) + end + i32.const 2 + local.set 1 + i32.const 2472 + i32.load + i32.const 2816 + i32.sub + i32.const 3 + i32.div_u + local.get 2 + i32.le_u + br_if 7 (;@6;) + call $runtime.growHeap + drop + br 7 (;@6;) + end + local.get 2 + i32.const 16 + i32.add + local.set 2 + i32.const 1 + local.set 4 + end + local.get 1 + i32.const 1 + i32.add + local.set 1 + br 0 (;@11;) + end + unreachable + end + i32.const 2513 + i32.const 0 + i32.store8 + i32.const 2480 + i32.load + local.set 2 + i32.const 0 + local.set 1 + end + loop ;; label = @9 + global.get 1 + i32.eqz + if ;; label = @10 + local.get 1 + local.get 2 + i32.ge_u + local.tee 4 + br_if 2 (;@8;) + local.get 1 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.const 3 + i32.ne + local.set 4 + end + global.get 1 + i32.const 1 + local.get 4 + select + if ;; label = @10 + local.get 8 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @11 + local.get 1 + call $runtime.startMark + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 10 (;@1;) + drop + end + global.get 1 + if (result i32) ;; label = @11 + local.get 2 + else + i32.const 2480 + i32.load + end + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @10 + local.get 1 + i32.const 1 + i32.add + local.set 1 + br 1 (;@9;) + end + end + end + end + global.get 1 + i32.eqz + if ;; label = @7 + local.get 2 + local.set 1 + call $runtime.growHeap + i32.const 1 + i32.and + i32.eqz + br_if 2 (;@5;) + end + end + global.get 1 + i32.eqz + if ;; label = @6 + i32.const 2480 + i32.load + local.get 5 + i32.eq + if ;; label = @7 + i32.const 0 + local.set 5 + br 3 (;@4;) + end + local.get 5 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + if ;; label = @7 + local.get 5 + i32.const 1 + i32.add + local.set 5 + br 3 (;@4;) + end + local.get 5 + i32.const 1 + i32.add + local.set 2 + local.get 6 + i32.const 1 + i32.add + local.tee 6 + local.get 7 + i32.ne + if ;; label = @7 + local.get 2 + local.set 5 + br 4 (;@3;) + end + i32.const 2476 + local.get 2 + i32.store + local.get 2 + local.get 7 + i32.sub + local.tee 2 + i32.const 1 + call $_runtime.gcBlock_.setState + local.get 5 + local.get 7 + i32.sub + i32.const 2 + i32.add + local.set 1 + loop ;; label = @7 + local.get 1 + i32.const 2476 + i32.load + i32.ne + if ;; label = @8 + local.get 1 + i32.const 2 + call $_runtime.gcBlock_.setState + local.get 1 + i32.const 1 + i32.add + local.set 1 + br 1 (;@7;) + end + end + local.get 2 + i32.const 4 + i32.shl + i32.const 2816 + i32.add + local.tee 1 + i32.const 0 + local.get 0 + memory.fill + local.get 1 + return + end + end + local.get 8 + i32.const 3 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + i32.const 2128 + i32.const 13 + call $runtime.runtimePanicAt + i32.const 3 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @5 + unreachable + end + end + local.get 6 + i32.const 0 + global.get 1 + select + local.set 6 + end + global.get 1 + i32.eqz + if ;; label = @3 + i32.const 2476 + i32.load + local.set 4 + local.get 1 + local.set 2 + br 1 (;@2;) + end + end + unreachable + end + local.set 3 + global.get 2 + i32.load + local.get 3 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 3 + local.get 0 + i32.store + local.get 3 + local.get 1 + i32.store offset=4 + local.get 3 + local.get 2 + i32.store offset=8 + local.get 3 + local.get 4 + i32.store offset=12 + local.get 3 + local.get 5 + i32.store offset=16 + local.get 3 + local.get 6 + i32.store offset=20 + local.get 3 + local.get 7 + i32.store offset=24 + global.get 2 + global.get 2 + i32.load + i32.const 28 + i32.add + i32.store + i32.const 0) + (func $internal/task.Pause (type 0) + (local i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2332 + i32.load + local.tee 0 + i32.eqz + local.set 2 + end + block ;; label = @2 + block ;; label = @3 + block ;; label = @4 + global.get 1 + i32.eqz + if ;; label = @5 + local.get 2 + br_if 1 (;@4;) + local.get 0 + i32.const 28 + i32.add + local.tee 0 + i32.load + i32.load + i32.const -1204030091 + i32.ne + br_if 2 (;@3;) + end + local.get 1 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @5 + local.get 0 + call $tinygo_unwind + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @5 + i32.const 2332 + i32.load + local.tee 0 + br_if 3 (;@2;) + end + end + local.get 1 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @4 + call $runtime.nilPanic + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @4 + unreachable + end + end + local.get 1 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @3 + call $runtime.runtimePanic + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + unreachable + end + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.const 28 + i32.add + i32.load + i32.const -1204030091 + i32.store + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.nilPanic (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2170 + i32.const 23 + call $runtime.runtimePanicAt + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.memequal (type 2) (param i32 i32 i32 i32) (result i32) + (local i32 i32) + i32.const 0 + local.set 3 + block (result i32) ;; label = @1 + loop ;; label = @2 + local.get 2 + local.get 2 + local.get 3 + i32.eq + br_if 1 (;@1;) + drop + local.get 1 + local.get 3 + i32.add + local.set 4 + local.get 0 + local.get 3 + i32.add + local.set 5 + local.get 3 + i32.const 1 + i32.add + local.set 3 + local.get 4 + i32.load8_u + local.get 5 + i32.load8_u + i32.eq + br_if 0 (;@2;) + end + local.get 3 + i32.const 1 + i32.sub + end + local.get 2 + i32.ge_u) + (func $runtime.hash32 (type 2) (param i32 i32 i32 i32) (result i32) + local.get 2 + i32.const -2128831035 + i32.mul + local.set 2 + loop ;; label = @1 + local.get 1 + if ;; label = @2 + local.get 1 + i32.const 1 + i32.sub + local.set 1 + local.get 0 + i32.load8_u + local.get 2 + i32.xor + i32.const 16777619 + i32.mul + local.set 2 + local.get 0 + i32.const 1 + i32.add + local.set 0 + br 1 (;@1;) + end + end + local.get 2) + (func $malloc (type 5) (param i32) (result i32) + (local i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 16 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=12 + local.set 4 + local.get 2 + i32.load offset=8 + local.set 3 + local.get 2 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 5 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 32 + i32.sub + local.tee 1 + global.set $__stack_pointer + local.get 1 + i32.const 2 + i32.store offset=20 + i32.const 2516 + i32.load + local.set 4 + i32.const 2516 + local.get 1 + i32.const 16 + i32.add + i32.store + local.get 1 + local.get 4 + i32.store offset=16 + local.get 0 + i32.eqz + local.set 6 + i32.const 0 + local.set 3 + end + block ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 6 + br_if 1 (;@3;) + local.get 0 + i32.const 0 + i32.lt_s + local.tee 3 + br_if 2 (;@2;) + end + local.get 5 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + local.get 0 + call $runtime.alloc + local.set 2 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + local.get 2 + local.set 3 + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 1 + local.get 3 + i32.store offset=24 + local.get 1 + local.get 3 + i32.store offset=28 + local.get 1 + local.get 0 + i32.store offset=8 + local.get 1 + local.get 0 + i32.store offset=4 + local.get 1 + local.get 3 + i32.store + local.get 1 + local.get 3 + i32.store offset=12 + local.get 1 + i32.const 12 + i32.add + local.set 0 + end + local.get 5 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @4 + local.get 0 + local.get 1 + call $runtime.hashmapBinarySet + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + end + global.get 1 + i32.eqz + if ;; label = @3 + i32.const 2516 + local.get 4 + i32.store + local.get 1 + i32.const 32 + i32.add + global.set $__stack_pointer + local.get 3 + return + end + end + local.get 5 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.slicePanic + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + unreachable + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + local.get 2 + local.get 3 + i32.store offset=8 + local.get 2 + local.get 4 + i32.store offset=12 + global.get 2 + global.get 2 + i32.load + i32.const 16 + i32.add + i32.store + i32.const 0) + (func $runtime.hashmapBinarySet (type 3) (param i32 i32) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=4 + local.set 1 + local.get 2 + i32.load offset=8 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 3 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.const 2296 + i32.load + i32.const 2288 + i32.load + local.get 0 + call $runtime.hash32 + local.set 2 + end + local.get 3 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2284 + local.get 0 + local.get 1 + local.get 2 + call $runtime.hashmapSet + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + return + end + local.set 3 + global.get 2 + i32.load + local.get 3 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 3 + local.get 0 + i32.store + local.get 3 + local.get 1 + i32.store offset=4 + local.get 3 + local.get 2 + i32.store offset=8 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.add + i32.store) + (func $runtime.slicePanic (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2211 + i32.const 18 + call $runtime.runtimePanicAt + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $free (type 1) (param i32) + (local i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=4 + local.set 1 + local.get 2 + i32.load offset=8 + local.set 3 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 4 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 16 + i32.sub + local.tee 3 + global.set $__stack_pointer + local.get 0 + i32.eqz + local.set 1 + end + block ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 1 + br_if 1 (;@3;) + local.get 3 + local.get 0 + i32.store offset=12 + local.get 3 + i32.const 12 + i32.add + local.set 1 + end + local.get 4 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + local.get 1 + local.get 3 + call $runtime.hashmapBinaryGet + local.set 2 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + local.get 2 + local.set 1 + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 1 + i32.const 1 + i32.and + i32.eqz + br_if 2 (;@2;) + local.get 3 + local.get 0 + i32.store + end + local.get 4 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @4 + local.get 3 + call $runtime.hashmapBinaryDelete + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + end + global.get 1 + i32.eqz + if ;; label = @3 + local.get 3 + i32.const 16 + i32.add + global.set $__stack_pointer + return + end + end + local.get 4 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 2088 + call $runtime._panic + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + local.get 2 + local.get 3 + i32.store offset=8 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.add + i32.store) + (func $runtime.hashmapBinaryGet (type 4) (param i32 i32) (result i32) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 3 + i32.load + local.set 0 + local.get 3 + i32.load offset=4 + local.set 1 + local.get 3 + i32.load offset=8 + local.set 3 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.const 2296 + i32.load + i32.const 2288 + i32.load + local.get 0 + call $runtime.hash32 + local.set 3 + end + local.get 2 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2284 + local.get 0 + local.get 1 + local.get 3 + call $runtime.hashmapGet + local.set 2 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 2 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + return + end + unreachable + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + local.get 2 + local.get 3 + i32.store offset=8 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.add + i32.store + i32.const 0) + (func $runtime.hashmapBinaryDelete (type 1) (param i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 44 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=8 + local.set 3 + local.get 1 + i32.load offset=12 + local.set 4 + local.get 1 + i32.load offset=20 + local.set 6 + local.get 1 + i32.load offset=24 + local.set 7 + local.get 1 + i32.load offset=28 + local.set 8 + local.get 1 + i32.load offset=32 + local.set 9 + local.get 1 + i32.load offset=36 + local.set 10 + local.get 1 + i32.load offset=40 + local.set 11 + local.get 1 + i32.load offset=16 + local.set 5 + local.get 1 + i32.load offset=4 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 12 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 32 + i32.sub + local.tee 2 + global.set $__stack_pointer + local.get 2 + i32.const 24 + i32.add + i64.const 0 + i64.store + local.get 2 + i64.const 0 + i64.store offset=16 + local.get 2 + i32.const 6 + i32.store offset=4 + i32.const 2516 + i32.load + local.set 7 + i32.const 2516 + local.get 2 + i32.store + local.get 2 + local.get 7 + i32.store + local.get 0 + i32.const 2296 + i32.load + i32.const 2288 + i32.load + local.tee 6 + local.get 4 + call $runtime.hash32 + local.tee 4 + i32.const 24 + i32.shr_u + local.tee 3 + i32.const 1 + local.get 3 + select + local.set 8 + i32.const 2284 + local.get 4 + call $runtime.hashmapBucketAddrForHash + local.set 3 + end + block ;; label = @2 + loop ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 2 + local.get 3 + i32.store offset=8 + local.get 2 + local.get 3 + i32.store offset=12 + local.get 3 + i32.eqz + br_if 2 (;@2;) + i32.const 0 + local.set 4 + end + block ;; label = @4 + loop ;; label = @5 + block ;; label = @6 + global.get 1 + i32.eqz + if ;; label = @7 + local.get 4 + i32.const 8 + i32.eq + local.tee 6 + br_if 1 (;@6;) + local.get 2 + i32.const 2296 + i32.load + local.tee 9 + local.get 4 + i32.mul + local.get 3 + i32.add + i32.const 12 + i32.add + local.tee 6 + i32.store offset=16 + local.get 8 + local.get 3 + local.get 4 + i32.add + local.tee 10 + i32.load8_u + i32.ne + local.set 5 + end + block ;; label = @7 + global.get 1 + i32.eqz + if ;; label = @8 + local.get 5 + br_if 1 (;@7;) + local.get 2 + i32.const 2308 + i32.load + local.tee 11 + i32.store offset=20 + local.get 2 + i32.const 2312 + i32.load + local.tee 5 + i32.store offset=24 + local.get 5 + i32.eqz + br_if 4 (;@4;) + end + local.get 12 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @8 + local.get 0 + local.get 6 + local.get 9 + local.get 11 + local.get 5 + call_indirect (type 2) + local.set 1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 7 (;@1;) + drop + local.get 1 + local.set 5 + end + global.get 1 + i32.eqz + if ;; label = @8 + local.get 5 + i32.const 1 + i32.and + i32.eqz + local.tee 5 + br_if 1 (;@7;) + local.get 10 + i32.const 0 + i32.store8 + local.get 6 + i32.const 0 + i32.const 2296 + i32.load + memory.fill + local.get 3 + local.get 4 + i32.const 2300 + i32.load + local.tee 6 + i32.mul + i32.const 2296 + i32.load + i32.const 3 + i32.shl + i32.add + i32.add + i32.const 12 + i32.add + i32.const 0 + local.get 6 + memory.fill + i32.const 2292 + i32.const 2292 + i32.load + i32.const 1 + i32.sub + i32.store + br 6 (;@2;) + end + end + global.get 1 + i32.eqz + if ;; label = @7 + local.get 4 + i32.const 1 + i32.add + local.set 4 + br 2 (;@5;) + end + end + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 3 + i32.load offset=8 + local.set 3 + br 2 (;@3;) + end + end + end + local.get 12 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @3 + call $runtime.nilPanic + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + unreachable + end + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2516 + local.get 7 + i32.store + local.get 2 + i32.const 32 + i32.add + global.set $__stack_pointer + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 1 + local.get 0 + i32.store + local.get 1 + local.get 2 + i32.store offset=4 + local.get 1 + local.get 3 + i32.store offset=8 + local.get 1 + local.get 4 + i32.store offset=12 + local.get 1 + local.get 5 + i32.store offset=16 + local.get 1 + local.get 6 + i32.store offset=20 + local.get 1 + local.get 7 + i32.store offset=24 + local.get 1 + local.get 8 + i32.store offset=28 + local.get 1 + local.get 9 + i32.store offset=32 + local.get 1 + local.get 10 + i32.store offset=36 + local.get 1 + local.get 11 + i32.store offset=40 + global.get 2 + global.get 2 + i32.load + i32.const 44 + i32.add + i32.store) + (func $runtime._panic (type 1) (param i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + local.get 1 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2141 + i32.const 7 + call $runtime.printstring + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 1 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + local.get 0 + call $runtime.printitf + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 1 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.printnl + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $calloc (type 4) (param i32 i32) (result i32) + (local i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=4 + local.set 3 + local.get 2 + i32.load offset=8 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 4 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 16 + i32.sub + local.tee 3 + global.set $__stack_pointer + i32.const 2516 + i32.load + local.set 2 + i32.const 2516 + local.get 3 + i32.store + local.get 0 + local.get 1 + i32.mul + local.set 0 + end + local.get 4 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + call $malloc + local.set 1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 1 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2516 + local.get 2 + i32.store + local.get 3 + i32.const 16 + i32.add + global.set $__stack_pointer + local.get 0 + return + end + unreachable + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 1 + local.get 0 + i32.store + local.get 1 + local.get 3 + i32.store offset=4 + local.get 1 + local.get 2 + i32.store offset=8 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.add + i32.store + i32.const 0) + (func $realloc (type 4) (param i32 i32) (result i32) + (local i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 24 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 3 + i32.load + local.set 0 + local.get 3 + i32.load offset=8 + local.set 2 + local.get 3 + i32.load offset=12 + local.set 4 + local.get 3 + i32.load offset=16 + local.set 5 + local.get 3 + i32.load offset=20 + local.set 7 + local.get 3 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 6 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 32 + i32.sub + local.tee 2 + global.set $__stack_pointer + local.get 2 + i32.const 2 + i32.store offset=20 + i32.const 2516 + i32.load + local.set 7 + i32.const 2516 + local.get 2 + i32.const 16 + i32.add + local.tee 4 + i32.store + local.get 2 + local.get 7 + i32.store offset=16 + i32.const 0 + local.set 5 + end + block ;; label = @2 + block ;; label = @3 + block ;; label = @4 + global.get 1 + i32.const 1 + local.get 1 + select + if ;; label = @5 + local.get 6 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @6 + local.get 0 + call $free + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 5 (;@1;) + drop + end + global.get 1 + i32.eqz + br_if 1 (;@4;) + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 1 + i32.const 0 + i32.lt_s + local.tee 5 + br_if 2 (;@3;) + end + local.get 6 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 1 + call $runtime.alloc + local.set 3 + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 3 + local.set 5 + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 2 + local.get 5 + i32.store offset=24 + local.get 2 + local.get 5 + i32.store offset=28 + local.get 0 + i32.eqz + local.set 4 + end + block ;; label = @5 + global.get 1 + i32.eqz + if ;; label = @6 + local.get 4 + br_if 1 (;@5;) + local.get 2 + local.get 0 + i32.store offset=12 + local.get 2 + i32.const 12 + i32.add + local.set 4 + end + local.get 6 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @6 + local.get 4 + local.get 2 + call $runtime.hashmapBinaryGet + local.set 3 + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 5 (;@1;) + drop + local.get 3 + local.set 4 + end + global.get 1 + i32.eqz + if ;; label = @6 + local.get 4 + i32.const 1 + i32.and + i32.eqz + br_if 4 (;@2;) + local.get 5 + local.get 2 + i32.load + local.get 2 + i32.load offset=4 + local.tee 4 + local.get 1 + local.get 1 + local.get 4 + i32.gt_u + select + memory.copy + local.get 2 + local.get 0 + i32.store + end + local.get 6 + i32.const 3 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @6 + local.get 2 + call $runtime.hashmapBinaryDelete + i32.const 3 + global.get 1 + i32.const 1 + i32.eq + br_if 5 (;@1;) + drop + end + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 2 + local.get 1 + i32.store offset=8 + local.get 2 + local.get 1 + i32.store offset=4 + local.get 2 + local.get 5 + i32.store + local.get 2 + local.get 5 + i32.store offset=12 + local.get 2 + i32.const 12 + i32.add + local.set 0 + end + local.get 6 + i32.const 4 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 0 + local.get 2 + call $runtime.hashmapBinarySet + i32.const 4 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + end + end + global.get 1 + i32.eqz + if ;; label = @4 + i32.const 2516 + local.get 7 + i32.store + local.get 2 + i32.const 32 + i32.add + global.set $__stack_pointer + local.get 5 + return + end + end + local.get 6 + i32.const 5 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @3 + call $runtime.slicePanic + i32.const 5 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + unreachable + end + end + local.get 6 + i32.const 6 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 2120 + call $runtime._panic + i32.const 6 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + unreachable + end + local.set 3 + global.get 2 + i32.load + local.get 3 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 3 + local.get 0 + i32.store + local.get 3 + local.get 1 + i32.store offset=4 + local.get 3 + local.get 2 + i32.store offset=8 + local.get 3 + local.get 4 + i32.store offset=12 + local.get 3 + local.get 5 + i32.store offset=16 + local.get 3 + local.get 7 + i32.store offset=20 + global.get 2 + global.get 2 + i32.load + i32.const 24 + i32.add + i32.store + i32.const 0) + (func $_start (type 0) + (local i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 0 + i32.load + local.set 1 + local.get 0 + i32.load offset=4 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 3 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 16 + i32.sub + local.tee 1 + global.set $__stack_pointer + local.get 1 + i32.const 0 + i32.store offset=12 + local.get 1 + i64.const 2 + i64.store offset=4 align=4 + i32.const 2516 + i32.load + local.set 2 + i32.const 2516 + local.get 1 + i32.store + local.get 1 + local.get 2 + i32.store + memory.size + local.set 0 + i32.const 2524 + i32.const 1 + i32.store8 + i32.const 2336 + local.get 0 + i32.const 16 + i32.shl + local.tee 4 + i32.store + call $runtime.calculateHeapAddresses + local.get 1 + i32.const 2472 + i32.load + local.tee 0 + i32.store offset=12 + local.get 1 + local.get 0 + i32.store offset=8 + local.get 0 + i32.const 0 + local.get 4 + local.get 0 + i32.sub + memory.fill + end + local.get 3 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 1 + call $internal/task.start + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 3 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.scheduler + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2516 + local.get 2 + i32.store + i32.const 2524 + i32.const 0 + i32.store8 + local.get 1 + i32.const 16 + i32.add + global.set $__stack_pointer + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 0 + local.get 1 + i32.store + local.get 0 + local.get 2 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store) + (func $runtime.calculateHeapAddresses (type 0) + (local i32 i32) + i32.const 2336 + i32.load + local.tee 0 + i32.const 2752 + i32.sub + i32.const 65 + i32.div_u + local.set 1 + i32.const 2472 + local.get 0 + local.get 1 + i32.sub + local.tee 0 + i32.store + i32.const 2480 + local.get 0 + i32.const 2816 + i32.sub + i32.const 4 + i32.shr_u + i32.store) + (func $runtime.run$1$gowrapper (type 1) (param i32) + (local i32) + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + local.get 1 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $runtime.run$1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 1 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.deadlock + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.scheduler (type 0) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + loop ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + i32.const 2525 + i32.load8_u + br_if 1 (;@3;) + call $_*internal/task.Queue_.Pop + local.tee 0 + i32.eqz + br_if 1 (;@3;) + end + local.get 1 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + local.get 0 + call $_*internal/task.Task_.Resume + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + global.get 1 + i32.eqz + br_if 1 (;@2;) + end + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $resume (type 0) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + local.get 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2 + call $internal/task.start + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.const 1 + global.get 1 + if (result i32) ;; label = @2 + local.get 1 + else + i32.const 2524 + i32.load8_u + i32.eqz + end + select + if ;; label = @2 + local.get 0 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @3 + call $runtime.minSched + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + return + end + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2524 + i32.const 1 + i32.store8 + end + local.get 0 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.scheduler + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2524 + i32.const 0 + i32.store8 + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.resume$1$gowrapper (type 1) (param i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $runtime.resume$1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.minSched (type 0) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + loop ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + i32.const 2525 + i32.load8_u + br_if 1 (;@3;) + call $_*internal/task.Queue_.Pop + local.tee 0 + i32.eqz + br_if 1 (;@3;) + end + local.get 1 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + local.get 0 + call $_*internal/task.Task_.Resume + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + global.get 1 + i32.eqz + br_if 1 (;@2;) + end + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $go_scheduler (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + i32.const 1 + global.get 1 + global.get 1 + if (result i32) ;; label = @2 + i32.const 1 + else + i32.const 2524 + i32.load8_u + end + select + if ;; label = @2 + local.get 0 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @3 + call $runtime.minSched + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + return + end + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2524 + i32.const 1 + i32.store8 + end + local.get 0 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.scheduler + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2524 + i32.const 0 + i32.store8 + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.runtimePanicAt (type 3) (param i32 i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + local.get 2 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2148 + i32.const 22 + call $runtime.printstring + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 2 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + local.get 0 + local.get 1 + call $runtime.printstring + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 2 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.printnl + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store) + (func $runtime.printstring (type 3) (param i32 i32) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=4 + local.set 1 + local.get 2 + i32.load offset=8 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 3 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 1 + i32.const 0 + local.get 1 + i32.const 0 + i32.gt_s + local.tee 2 + select + local.set 1 + end + loop ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 1 + i32.eqz + br_if 1 (;@3;) + local.get 0 + i32.load8_u + local.set 2 + end + local.get 3 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + local.get 2 + call $runtime.putchar + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 1 + i32.const 1 + i32.sub + local.set 1 + local.get 0 + i32.const 1 + i32.add + local.set 0 + br 2 (;@2;) + end + end + end + return + end + local.set 3 + global.get 2 + i32.load + local.get 3 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 3 + local.get 0 + i32.store + local.get 3 + local.get 1 + i32.store offset=4 + local.get 3 + local.get 2 + i32.store offset=8 + global.get 2 + global.get 2 + i32.load + i32.const 12 + i32.add + i32.store) + (func $runtime.printnl (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 10 + call $runtime.putchar + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.putchar (type 1) (param i32) + (local i32 i32 i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2340 + i32.load + local.tee 3 + i32.const 119 + i32.gt_u + local.set 1 + end + block ;; label = @2 + global.get 1 + i32.eqz + if ;; label = @3 + local.get 1 + br_if 1 (;@2;) + i32.const 2340 + local.get 3 + i32.const 1 + i32.add + local.tee 1 + i32.store + local.get 3 + i32.const 2344 + i32.add + local.get 0 + i32.store8 + local.get 0 + i32.const 255 + i32.and + i32.const 10 + i32.eq + local.set 0 + end + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 0 + i32.const 1 + local.get 3 + i32.const 119 + i32.ne + select + i32.eqz + br_if 1 (;@3;) + i32.const 2280 + local.get 1 + i32.store + end + local.get 2 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @4 + i32.const 1 + i32.const 2276 + i32.const 1 + i32.const 2520 + call $runtime.fd_write + drop + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 3 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @4 + i32.const 2340 + i32.const 0 + i32.store + end + end + global.get 1 + i32.eqz + if ;; label = @3 + return + end + end + local.get 2 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.lookupPanic + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.lookupPanic (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2193 + i32.const 18 + call $runtime.runtimePanicAt + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.resume$1 (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $runtime.nilPanic + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.deadlock (type 0) + (local i32) + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + local.get 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $internal/task.Pause + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 0 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 2240 + call $runtime._panic + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.printitf (type 1) (param i32) + (local i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 2 + end + global.get 1 + i32.eqz + if ;; label = @2 + local.get 0 + i32.load + local.set 1 + local.get 0 + i32.load offset=4 + local.set 0 + end + local.get 2 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 1 + local.get 0 + call $runtime.printstring + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + return + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store) + (func $runtime.markRoots (type 3) (param i32 i32) + (local i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 16 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 2 + i32.load + local.set 0 + local.get 2 + i32.load offset=4 + local.set 1 + local.get 2 + i32.load offset=8 + local.set 3 + local.get 2 + i32.load offset=12 + local.set 2 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 4 + end + loop ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 0 + local.get 1 + i32.ge_u + br_if 1 (;@3;) + local.get 0 + i32.load + local.tee 3 + i32.const 2816 + i32.lt_u + local.set 2 + end + block ;; label = @4 + global.get 1 + i32.eqz + if ;; label = @5 + local.get 2 + br_if 1 (;@4;) + local.get 3 + i32.const 2472 + i32.load + i32.ge_u + local.tee 2 + br_if 1 (;@4;) + local.get 3 + i32.const 2816 + i32.sub + i32.const 4 + i32.shr_u + local.tee 3 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.eqz + local.tee 2 + br_if 1 (;@4;) + local.get 3 + call $_runtime.gcBlock_.findHead + local.tee 3 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.const 3 + i32.eq + local.tee 2 + br_if 1 (;@4;) + end + local.get 4 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @5 + local.get 3 + call $runtime.startMark + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + end + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 0 + i32.const 4 + i32.add + local.set 0 + br 2 (;@2;) + end + end + end + return + end + local.set 4 + global.get 2 + i32.load + local.get 4 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 4 + local.get 0 + i32.store + local.get 4 + local.get 1 + i32.store offset=4 + local.get 4 + local.get 3 + i32.store offset=8 + local.get 4 + local.get 2 + i32.store offset=12 + global.get 2 + global.get 2 + i32.load + i32.const 16 + i32.add + i32.store) + (func $_runtime.gcBlock_.state (type 5) (param i32) (result i32) + i32.const 2472 + i32.load + local.get 0 + i32.const 2 + i32.shr_u + i32.add + i32.load8_u + local.get 0 + i32.const 1 + i32.shl + i32.const 6 + i32.and + i32.shr_u + i32.const 3 + i32.and) + (func $_runtime.gcBlock_.markFree (type 1) (param i32) + (local i32 i32) + i32.const 2472 + i32.load + local.get 0 + i32.const 2 + i32.shr_u + i32.add + local.tee 1 + i32.load8_u + local.set 2 + local.get 1 + local.get 2 + i32.const 3 + local.get 0 + i32.const 1 + i32.shl + i32.const 6 + i32.and + i32.shl + i32.const -1 + i32.xor + i32.and + i32.store8) + (func $runtime.growHeap (type 6) (result i32) + (local i32 i32 i32) + memory.size + memory.grow + i32.const -1 + i32.ne + local.tee 1 + if ;; label = @1 + memory.size + local.set 0 + i32.const 2336 + i32.load + local.set 2 + i32.const 2336 + local.get 0 + i32.const 16 + i32.shl + i32.store + i32.const 2472 + i32.load + local.set 0 + call $runtime.calculateHeapAddresses + i32.const 2472 + i32.load + local.get 0 + local.get 2 + local.get 0 + i32.sub + memory.copy + end + local.get 1) + (func $runtime.startMark (type 1) (param i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 6 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const -64 + i32.add + local.tee 3 + global.set $__stack_pointer + local.get 3 + i32.const 4 + i32.add + i32.const 0 + i32.const 60 + memory.fill + local.get 3 + local.get 0 + i32.store + local.get 0 + i32.const 3 + call $_runtime.gcBlock_.setState + i32.const 1 + local.set 2 + block ;; label = @3 + loop ;; label = @4 + local.get 2 + i32.const 1 + i32.ge_s + if ;; label = @5 + local.get 2 + i32.const 1 + i32.sub + local.tee 2 + i32.const 15 + i32.gt_u + br_if 2 (;@3;) + local.get 3 + local.get 2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee 1 + i32.const 4 + i32.shl + local.set 0 + block ;; label = @6 + block ;; label = @7 + local.get 1 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.const 1 + i32.sub + br_table 0 (;@7;) 1 (;@6;) 0 (;@7;) 1 (;@6;) + end + local.get 1 + i32.const 1 + i32.add + local.set 1 + end + local.get 0 + i32.const 2816 + i32.add + local.set 5 + local.get 1 + i32.const 4 + i32.shl + local.tee 4 + local.get 0 + i32.sub + local.set 7 + local.get 4 + i32.const 2816 + i32.add + local.set 4 + i32.const 2472 + i32.load + local.set 8 + loop ;; label = @6 + block ;; label = @7 + local.get 7 + local.set 0 + local.get 4 + local.get 8 + i32.ge_u + br_if 0 (;@7;) + local.get 0 + i32.const 16 + i32.add + local.set 7 + local.get 4 + i32.const 16 + i32.add + local.set 4 + local.get 1 + call $_runtime.gcBlock_.state + local.set 9 + local.get 1 + i32.const 1 + i32.add + local.set 1 + local.get 9 + i32.const 255 + i32.and + i32.const 2 + i32.eq + br_if 1 (;@6;) + end + end + loop ;; label = @6 + local.get 0 + i32.eqz + br_if 2 (;@4;) + block ;; label = @7 + local.get 5 + i32.load + local.tee 1 + i32.const 2816 + i32.lt_u + br_if 0 (;@7;) + local.get 1 + i32.const 2472 + i32.load + i32.ge_u + br_if 0 (;@7;) + local.get 1 + i32.const 2816 + i32.sub + i32.const 4 + i32.shr_u + local.tee 1 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.eqz + br_if 0 (;@7;) + local.get 1 + call $_runtime.gcBlock_.findHead + local.tee 1 + call $_runtime.gcBlock_.state + i32.const 255 + i32.and + i32.const 3 + i32.eq + br_if 0 (;@7;) + local.get 1 + i32.const 3 + call $_runtime.gcBlock_.setState + local.get 2 + i32.const 16 + i32.eq + if ;; label = @8 + i32.const 2513 + i32.const 1 + i32.store8 + i32.const 16 + local.set 2 + br 1 (;@7;) + end + local.get 2 + i32.const 15 + i32.gt_u + br_if 4 (;@3;) + local.get 3 + local.get 2 + i32.const 2 + i32.shl + i32.add + local.get 1 + i32.store + local.get 2 + i32.const 1 + i32.add + local.set 2 + end + local.get 0 + i32.const 4 + i32.sub + local.set 0 + local.get 5 + i32.const 4 + i32.add + local.set 5 + br 0 (;@6;) + end + unreachable + end + end + local.get 3 + i32.const -64 + i32.sub + global.set $__stack_pointer + return + end + end + local.get 6 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $runtime.lookupPanic + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $_runtime.gcBlock_.setState (type 3) (param i32 i32) + (local i32 i32) + i32.const 2472 + i32.load + local.get 0 + i32.const 2 + i32.shr_u + i32.add + local.tee 2 + i32.load8_u + local.set 3 + local.get 2 + local.get 3 + local.get 1 + local.get 0 + i32.const 1 + i32.shl + i32.const 6 + i32.and + i32.shl + i32.or + i32.store8) + (func $_runtime.gcBlock_.findHead (type 5) (param i32) (result i32) + (local i32 i32) + loop ;; label = @1 + local.get 0 + call $_runtime.gcBlock_.state + local.set 1 + local.get 0 + i32.const 1 + i32.sub + local.tee 2 + local.set 0 + local.get 1 + i32.const 255 + i32.and + i32.const 2 + i32.eq + br_if 0 (;@1;) + end + local.get 2 + i32.const 1 + i32.add) + (func $runtime.run$1 (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2336 + memory.size + i32.const 16 + i32.shl + i32.store + end + local.get 0 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2248 + i32.const 12 + call $github.com/project-mahiwa/mahiwa-frontend-go/serial.Println + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 0 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 3 + call $internal/task.start + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 0 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + i32.const 1000 + call $delay + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2525 + i32.const 1 + i32.store8 + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $main.main$1$gowrapper (type 1) (param i32) + (local i32) + block (result i32) ;; label = @1 + block (result i32) ;; label = @2 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @3 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 1 + end + local.get 1 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $main.main$1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + local.get 1 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.deadlock + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $runtime.hashmapGet (type 2) (param i32 i32 i32 i32) (result i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 52 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 4 + i32.load + local.set 0 + local.get 4 + i32.load offset=8 + local.set 2 + local.get 4 + i32.load offset=12 + local.set 3 + local.get 4 + i32.load offset=16 + local.set 5 + local.get 4 + i32.load offset=20 + local.set 6 + local.get 4 + i32.load offset=24 + local.set 7 + local.get 4 + i32.load offset=28 + local.set 8 + local.get 4 + i32.load offset=32 + local.set 9 + local.get 4 + i32.load offset=36 + local.set 10 + local.get 4 + i32.load offset=40 + local.set 11 + local.get 4 + i32.load offset=44 + local.set 12 + local.get 4 + i32.load offset=48 + local.set 13 + local.get 4 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 14 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 48 + i32.sub + local.tee 5 + global.set $__stack_pointer + local.get 5 + i32.const 32 + i32.add + i64.const 0 + i64.store + local.get 5 + i32.const 40 + i32.add + i32.const 0 + i32.store + local.get 5 + i64.const 0 + i64.store offset=24 + local.get 5 + i32.const 7 + i32.store offset=12 + i32.const 2516 + i32.load + local.set 9 + i32.const 2516 + local.get 5 + i32.const 8 + i32.add + i32.store + local.get 5 + local.get 9 + i32.store offset=8 + local.get 5 + local.get 0 + local.get 3 + call $runtime.hashmapBucketAddrForHash + local.tee 6 + i32.store offset=16 + local.get 3 + i32.const 24 + i32.shr_u + local.tee 3 + i32.const 1 + local.get 3 + select + local.set 10 + end + block ;; label = @2 + block ;; label = @3 + loop ;; label = @4 + block ;; label = @5 + global.get 1 + i32.eqz + if ;; label = @6 + local.get 5 + local.get 6 + i32.store offset=20 + local.get 6 + i32.eqz + br_if 1 (;@5;) + i32.const 0 + local.set 3 + end + loop ;; label = @6 + block ;; label = @7 + global.get 1 + i32.eqz + if ;; label = @8 + local.get 3 + i32.const 8 + i32.eq + local.tee 7 + br_if 1 (;@7;) + local.get 5 + local.get 6 + local.get 0 + i32.load offset=12 + local.tee 7 + local.get 3 + i32.mul + i32.add + i32.const 12 + i32.add + local.tee 11 + i32.store offset=24 + local.get 5 + local.get 6 + local.get 0 + i32.load offset=16 + local.get 3 + i32.mul + local.get 7 + i32.const 3 + i32.shl + i32.add + i32.add + i32.const 12 + i32.add + local.tee 12 + i32.store offset=28 + local.get 10 + local.get 3 + local.get 6 + i32.add + i32.load8_u + i32.ne + local.set 8 + end + block ;; label = @8 + global.get 1 + i32.eqz + if ;; label = @9 + local.get 8 + br_if 1 (;@8;) + local.get 5 + local.get 0 + i32.load offset=24 + local.tee 13 + i32.store offset=32 + local.get 5 + local.get 0 + i32.load offset=28 + local.tee 8 + i32.store offset=36 + local.get 8 + i32.eqz + br_if 7 (;@2;) + end + local.get 14 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @9 + local.get 1 + local.get 11 + local.get 7 + local.get 13 + local.get 8 + call_indirect (type 2) + local.set 4 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 8 (;@1;) + drop + local.get 4 + local.set 7 + end + global.get 1 + i32.eqz + if ;; label = @9 + local.get 7 + i32.const 1 + i32.and + i32.eqz + local.tee 7 + br_if 1 (;@8;) + local.get 2 + local.get 12 + local.get 0 + i32.load offset=16 + memory.copy + br 6 (;@3;) + end + end + global.get 1 + i32.eqz + if ;; label = @8 + local.get 3 + i32.const 1 + i32.add + local.set 3 + br 2 (;@6;) + end + end + end + global.get 1 + i32.eqz + if ;; label = @6 + local.get 5 + local.get 6 + i32.load offset=8 + local.tee 6 + i32.store offset=40 + br 2 (;@4;) + end + end + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 2 + i32.const 0 + local.get 0 + i32.load offset=16 + memory.fill + end + end + global.get 1 + i32.eqz + if ;; label = @3 + i32.const 2516 + local.get 9 + i32.store + local.get 5 + i32.const 48 + i32.add + global.set $__stack_pointer + local.get 6 + i32.const 0 + i32.ne + return + end + end + local.get 14 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @2 + call $runtime.nilPanic + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + unreachable + end + unreachable + end + local.set 4 + global.get 2 + i32.load + local.get 4 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 4 + local.get 0 + i32.store + local.get 4 + local.get 1 + i32.store offset=4 + local.get 4 + local.get 2 + i32.store offset=8 + local.get 4 + local.get 3 + i32.store offset=12 + local.get 4 + local.get 5 + i32.store offset=16 + local.get 4 + local.get 6 + i32.store offset=20 + local.get 4 + local.get 7 + i32.store offset=24 + local.get 4 + local.get 8 + i32.store offset=28 + local.get 4 + local.get 9 + i32.store offset=32 + local.get 4 + local.get 10 + i32.store offset=36 + local.get 4 + local.get 11 + i32.store offset=40 + local.get 4 + local.get 12 + i32.store offset=44 + local.get 4 + local.get 13 + i32.store offset=48 + global.get 2 + global.get 2 + i32.load + i32.const 52 + i32.add + i32.store + i32.const 0) + (func $runtime.hashmapBucketAddrForHash (type 4) (param i32 i32) (result i32) + (local i32 i32) + local.get 0 + i32.load + local.set 2 + local.get 0 + i32.load offset=16 + local.get 0 + i32.load offset=12 + i32.add + i32.const 3 + i32.shl + i32.const 12 + i32.add + local.set 3 + local.get 2 + local.get 3 + local.get 1 + i32.const -1 + i32.const -1 + local.get 0 + i32.load8_u offset=20 + local.tee 0 + i32.shl + i32.const -1 + i32.xor + local.get 0 + i32.const 31 + i32.gt_u + select + i32.and + i32.mul + i32.add) + (func $runtime.hashmapSet (type 7) (param i32 i32 i32 i32) + (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const -64 + i32.add + i32.store + global.get 2 + i32.load + local.tee 5 + i32.load + local.set 0 + local.get 5 + i32.load offset=8 + local.set 2 + local.get 5 + i32.load offset=12 + local.set 3 + local.get 5 + i32.load offset=16 + local.set 4 + local.get 5 + i32.load offset=20 + local.set 6 + local.get 5 + i32.load offset=24 + local.set 8 + local.get 5 + i32.load offset=28 + local.set 7 + local.get 5 + i32.load offset=32 + local.set 9 + local.get 5 + i32.load offset=36 + local.set 10 + local.get 5 + i32.load offset=40 + local.set 11 + local.get 5 + i32.load offset=44 + local.set 12 + local.get 5 + i32.load offset=48 + local.set 14 + local.get 5 + i32.load offset=52 + local.set 15 + local.get 5 + i32.load offset=56 + local.set 16 + local.get 5 + i32.load offset=60 + local.set 17 + local.get 5 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 13 + end + global.get 1 + i32.eqz + if ;; label = @2 + global.get $__stack_pointer + i32.const 272 + i32.sub + local.tee 4 + global.set $__stack_pointer + local.get 4 + i32.const 55 + i32.store offset=44 + local.get 4 + i32.const 48 + i32.add + i32.const 0 + i32.const 220 + memory.fill + local.get 4 + i32.const 2516 + i32.load + local.tee 17 + i32.store offset=40 + i32.const 2516 + local.get 4 + i32.const 40 + i32.add + i32.store + local.get 0 + i32.eqz + local.set 6 + end + block ;; label = @2 + block ;; label = @3 + global.get 1 + i32.eqz + if ;; label = @4 + local.get 6 + br_if 1 (;@3;) + local.get 0 + i32.load8_u offset=20 + local.tee 8 + i32.const 29 + i32.gt_u + local.set 6 + end + block ;; label = @4 + global.get 1 + i32.eqz + if ;; label = @5 + local.get 6 + br_if 1 (;@4;) + local.get 0 + i32.load offset=8 + local.tee 9 + i32.const 6 + local.get 8 + i32.shl + i32.le_u + local.tee 6 + br_if 1 (;@4;) + local.get 4 + i64.const 0 + i64.store offset=16 + local.get 4 + local.get 0 + i32.load offset=36 + local.tee 3 + i32.store offset=64 + local.get 4 + local.get 0 + i32.load offset=32 + local.tee 6 + i32.store offset=60 + local.get 4 + local.get 0 + i32.load offset=28 + local.tee 7 + i32.store offset=56 + local.get 4 + local.get 0 + i32.load offset=24 + local.tee 10 + i32.store offset=52 + local.get 4 + local.get 0 + i32.load + i32.store offset=48 + local.get 4 + local.get 3 + i32.store offset=36 + local.get 4 + local.get 6 + i32.store offset=32 + local.get 4 + local.get 7 + i32.store offset=28 + local.get 4 + local.get 10 + i32.store offset=24 + local.get 4 + local.get 0 + i32.load offset=16 + i32.store offset=16 + local.get 4 + local.get 0 + i32.load offset=12 + i32.store offset=12 + i32.const 2272 + i32.load + local.tee 3 + i32.const 7 + i32.shl + local.set 6 + local.get 3 + local.get 6 + i32.xor + local.tee 3 + i32.const 1 + i32.shr_u + local.set 6 + local.get 3 + local.get 6 + i32.xor + local.tee 3 + i32.const 9 + i32.shl + local.set 6 + i32.const 2272 + local.get 3 + local.get 6 + i32.xor + local.tee 3 + i32.store + local.get 4 + i32.const 0 + i32.store offset=8 + local.get 4 + local.get 3 + i32.store offset=4 + local.get 4 + local.get 8 + i32.const 1 + i32.add + local.tee 3 + i32.store8 offset=20 + local.get 0 + i32.load offset=12 + local.tee 9 + local.get 0 + i32.load offset=16 + i32.add + i32.const 3 + i32.shl + i32.const 12 + i32.add + local.tee 6 + local.get 3 + i32.shl + local.set 3 + end + local.get 13 + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @5 + local.get 3 + call $runtime.alloc + local.set 5 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 5 + local.set 3 + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 4 + local.get 3 + i32.store + local.get 4 + local.get 3 + i32.store offset=68 + local.get 0 + i32.load offset=12 + local.set 3 + end + local.get 13 + i32.const 1 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 3 + call $runtime.alloc + local.set 5 + i32.const 1 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 5 + local.set 6 + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 4 + local.get 6 + i32.store offset=72 + local.get 0 + i32.load offset=16 + local.set 3 + end + local.get 13 + i32.const 2 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 3 + call $runtime.alloc + local.set 5 + i32.const 2 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 5 + local.set 14 + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 4 + local.get 14 + i32.store offset=76 + i32.const 0 + local.set 9 + i32.const 0 + local.set 8 + i32.const 0 + local.set 16 + i32.const 0 + local.set 12 + i32.const 0 + local.set 3 + end + loop ;; label = @5 + global.get 1 + i32.eqz + if ;; label = @6 + local.get 4 + local.get 12 + i32.store offset=80 + local.get 12 + i32.eqz + if ;; label = @7 + local.get 4 + local.get 0 + i32.load + local.tee 12 + i32.store offset=84 + i32.const 0 + i32.const 1 + local.get 0 + i32.load8_u offset=20 + local.tee 7 + i32.shl + local.tee 10 + local.get 7 + i32.const 31 + i32.gt_u + local.tee 7 + select + local.set 16 + end + local.get 4 + local.get 12 + i32.store offset=100 + local.get 4 + local.get 12 + i32.store offset=120 + end + block ;; label = @6 + loop ;; label = @7 + global.get 1 + i32.eqz + if ;; label = @8 + local.get 4 + local.get 3 + i32.store offset=88 + local.get 8 + i32.const 255 + i32.and + i32.const 8 + i32.lt_u + local.tee 7 + i32.eqz + if ;; label = @9 + local.get 3 + i32.eqz + br_if 6 (;@3;) + local.get 4 + local.get 3 + i32.load offset=8 + local.tee 3 + i32.store offset=92 + i32.const 0 + local.set 8 + end + local.get 4 + local.get 3 + i32.store offset=96 + local.get 3 + i32.eqz + if ;; label = @9 + local.get 9 + local.get 16 + i32.ge_u + local.tee 3 + br_if 3 (;@6;) + local.get 4 + local.get 12 + local.get 9 + local.get 0 + i32.load offset=16 + local.get 0 + i32.load offset=12 + i32.add + i32.const 3 + i32.shl + i32.const 12 + i32.add + i32.mul + i32.add + local.tee 3 + i32.store offset=104 + local.get 9 + i32.const 1 + i32.add + local.set 9 + end + local.get 4 + local.get 3 + i32.store offset=112 + local.get 4 + local.get 3 + i32.store offset=128 + local.get 4 + local.get 3 + i32.store offset=108 + local.get 3 + i32.eqz + br_if 5 (;@3;) + local.get 8 + i32.const 255 + i32.and + local.tee 10 + local.get 3 + i32.add + i32.load8_u + local.tee 7 + i32.eqz + if ;; label = @9 + local.get 8 + i32.const 1 + i32.add + local.set 8 + br 2 (;@7;) + end + local.get 4 + local.get 10 + local.get 0 + i32.load offset=12 + local.tee 7 + i32.mul + local.get 3 + i32.add + i32.const 12 + i32.add + local.tee 11 + i32.store offset=116 + local.get 6 + local.get 11 + local.get 7 + memory.copy + local.get 4 + local.get 0 + i32.load + local.tee 11 + i32.store offset=124 + local.get 11 + local.get 12 + i32.ne + local.set 11 + end + block ;; label = @8 + global.get 1 + i32.eqz + if ;; label = @9 + local.get 11 + i32.eqz + if ;; label = @10 + local.get 7 + i32.const 3 + i32.shl + local.set 11 + local.get 4 + local.get 11 + local.get 10 + local.get 0 + i32.load offset=16 + local.tee 7 + i32.mul + i32.add + local.get 3 + i32.add + i32.const 12 + i32.add + local.tee 10 + i32.store offset=132 + local.get 14 + local.get 10 + local.get 7 + memory.copy + local.get 8 + i32.const 1 + i32.add + local.set 8 + br 2 (;@8;) + end + local.get 4 + local.get 0 + i32.load offset=32 + local.tee 11 + i32.store offset=136 + local.get 4 + local.get 0 + i32.load offset=36 + local.tee 10 + i32.store offset=140 + local.get 10 + i32.eqz + br_if 6 (;@3;) + local.get 0 + i32.load offset=4 + local.set 15 + local.get 8 + i32.const 1 + i32.add + local.set 8 + end + local.get 13 + i32.const 3 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @9 + local.get 6 + local.get 7 + local.get 15 + local.get 11 + local.get 10 + call_indirect (type 2) + local.set 5 + i32.const 3 + global.get 1 + i32.const 1 + i32.eq + br_if 8 (;@1;) + drop + local.get 5 + local.set 7 + end + local.get 13 + i32.const 4 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @9 + local.get 0 + local.get 6 + local.get 14 + local.get 7 + call $runtime.hashmapGet + local.set 5 + i32.const 4 + global.get 1 + i32.const 1 + i32.eq + br_if 8 (;@1;) + drop + local.get 5 + local.set 7 + end + global.get 1 + i32.eqz + if ;; label = @9 + local.get 7 + i32.const 1 + i32.and + i32.eqz + local.tee 7 + br_if 2 (;@7;) + end + end + end + global.get 1 + i32.eqz + if ;; label = @7 + local.get 4 + local.get 4 + i32.load offset=32 + local.tee 10 + i32.store offset=144 + local.get 4 + local.get 4 + i32.load offset=36 + local.tee 7 + i32.store offset=148 + local.get 7 + i32.eqz + br_if 4 (;@3;) + local.get 4 + i32.load offset=4 + local.set 15 + local.get 4 + i32.load offset=12 + local.set 11 + end + local.get 13 + i32.const 5 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @7 + local.get 6 + local.get 11 + local.get 15 + local.get 10 + local.get 7 + call_indirect (type 2) + local.set 5 + i32.const 5 + global.get 1 + i32.const 1 + i32.eq + br_if 6 (;@1;) + drop + local.get 5 + local.set 7 + end + local.get 13 + i32.const 6 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @7 + local.get 4 + local.get 6 + local.get 14 + local.get 7 + call $runtime.hashmapSet + i32.const 6 + global.get 1 + i32.const 1 + i32.eq + br_if 6 (;@1;) + drop + end + global.get 1 + i32.eqz + br_if 1 (;@5;) + end + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 0 + local.get 4 + i32.load + local.tee 3 + i32.store + local.get 0 + local.get 4 + i64.load offset=4 align=4 + i64.store offset=4 align=4 + local.get 0 + local.get 4 + i64.load offset=12 align=4 + i64.store offset=12 align=4 + local.get 0 + local.get 4 + i32.load8_u offset=20 + i32.store8 offset=20 + local.get 0 + local.get 4 + i32.load offset=24 + local.tee 8 + i32.store offset=24 + local.get 0 + local.get 4 + i32.load offset=28 + local.tee 6 + i32.store offset=28 + local.get 0 + local.get 4 + i32.load offset=32 + local.tee 7 + i32.store offset=32 + local.get 0 + local.get 4 + i32.load offset=36 + local.tee 10 + i32.store offset=36 + local.get 4 + local.get 3 + i32.store offset=152 + local.get 4 + local.get 8 + i32.store offset=156 + local.get 4 + local.get 6 + i32.store offset=160 + local.get 4 + local.get 7 + i32.store offset=164 + local.get 4 + local.get 10 + i32.store offset=168 + local.get 4 + local.get 0 + i32.load offset=32 + local.tee 8 + i32.store offset=172 + local.get 4 + local.get 0 + i32.load offset=36 + local.tee 3 + i32.store offset=176 + local.get 3 + i32.eqz + br_if 2 (;@3;) + local.get 0 + i32.load offset=4 + local.set 9 + local.get 0 + i32.load offset=12 + local.set 6 + end + local.get 13 + i32.const 7 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 1 + local.get 6 + local.get 9 + local.get 8 + local.get 3 + call_indirect (type 2) + local.set 5 + i32.const 7 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 5 + local.set 3 + end + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 4 + local.get 0 + local.get 3 + call $runtime.hashmapBucketAddrForHash + local.tee 9 + i32.store offset=180 + local.get 3 + i32.const 24 + i32.shr_u + local.tee 3 + i32.const 1 + local.get 3 + select + local.set 15 + i32.const 0 + local.set 8 + i32.const 0 + local.set 10 + i32.const 0 + local.set 7 + i32.const 0 + local.set 3 + end + loop ;; label = @4 + block ;; label = @5 + global.get 1 + i32.eqz + if ;; label = @6 + local.get 4 + local.get 3 + i32.store offset=196 + local.get 4 + local.get 9 + local.tee 6 + i32.store offset=200 + local.get 4 + local.get 8 + i32.store offset=192 + local.get 4 + local.get 10 + i32.store offset=188 + local.get 4 + local.get 7 + i32.store offset=184 + local.get 6 + i32.eqz + local.tee 9 + br_if 1 (;@5;) + i32.const 0 + local.set 3 + end + loop ;; label = @6 + block ;; label = @7 + global.get 1 + i32.eqz + if ;; label = @8 + local.get 4 + local.get 10 + i32.store offset=208 + local.get 4 + local.get 8 + i32.store offset=212 + local.get 4 + local.get 7 + i32.store offset=204 + local.get 3 + i32.const 8 + i32.eq + br_if 1 (;@7;) + local.get 4 + local.get 0 + i32.load offset=12 + local.tee 12 + local.get 3 + i32.mul + local.get 6 + i32.add + i32.const 12 + i32.add + local.tee 14 + i32.store offset=216 + local.get 4 + local.get 0 + i32.load offset=16 + local.get 3 + i32.mul + local.get 12 + i32.const 3 + i32.shl + i32.add + local.get 6 + i32.add + i32.const 12 + i32.add + local.tee 16 + i32.store offset=220 + local.get 4 + local.get 8 + local.get 14 + local.get 3 + local.get 6 + i32.add + local.tee 9 + i32.load8_u + local.get 8 + i32.or + local.tee 11 + select + local.tee 8 + i32.store offset=232 + local.get 4 + local.get 7 + local.get 9 + local.get 11 + select + local.tee 7 + i32.store offset=224 + local.get 4 + local.get 10 + local.get 16 + local.get 11 + select + local.tee 10 + i32.store offset=228 + local.get 15 + local.get 9 + i32.load8_u + i32.ne + local.set 9 + end + block ;; label = @8 + global.get 1 + i32.eqz + if ;; label = @9 + local.get 9 + br_if 1 (;@8;) + local.get 4 + local.get 0 + i32.load offset=24 + local.tee 11 + i32.store offset=236 + local.get 4 + local.get 0 + i32.load offset=28 + local.tee 9 + i32.store offset=240 + local.get 9 + i32.eqz + br_if 6 (;@3;) + end + local.get 13 + i32.const 8 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @9 + local.get 1 + local.get 14 + local.get 12 + local.get 11 + local.get 9 + call_indirect (type 2) + local.set 5 + i32.const 8 + global.get 1 + i32.const 1 + i32.eq + br_if 8 (;@1;) + drop + local.get 5 + local.set 9 + end + global.get 1 + i32.eqz + if ;; label = @9 + local.get 9 + i32.const 1 + i32.and + i32.eqz + local.tee 9 + br_if 1 (;@8;) + local.get 16 + local.get 2 + local.get 0 + i32.load offset=16 + memory.copy + br 7 (;@2;) + end + end + global.get 1 + i32.eqz + if ;; label = @8 + local.get 3 + i32.const 1 + i32.add + local.set 3 + br 2 (;@6;) + end + end + end + global.get 1 + i32.eqz + if ;; label = @6 + local.get 4 + local.get 6 + i32.load offset=8 + local.tee 9 + i32.store offset=244 + local.get 6 + local.set 3 + br 2 (;@4;) + end + end + end + block ;; label = @4 + global.get 1 + i32.eqz + if ;; label = @5 + local.get 8 + br_if 1 (;@4;) + local.get 0 + i32.load offset=16 + local.get 0 + i32.load offset=12 + i32.add + i32.const 3 + i32.shl + i32.const 12 + i32.add + local.set 6 + end + local.get 13 + i32.const 9 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @5 + local.get 6 + call $runtime.alloc + local.set 5 + i32.const 9 + global.get 1 + i32.const 1 + i32.eq + br_if 4 (;@1;) + drop + local.get 5 + local.set 8 + end + global.get 1 + i32.eqz + if ;; label = @5 + local.get 0 + local.get 0 + i32.load offset=8 + i32.const 1 + i32.add + i32.store offset=8 + local.get 4 + local.get 8 + i32.store offset=252 + local.get 4 + local.get 8 + i32.store offset=264 + local.get 4 + local.get 8 + i32.store offset=248 + local.get 4 + local.get 8 + i32.const 12 + i32.add + local.tee 6 + i32.store offset=256 + local.get 4 + local.get 0 + i32.load offset=12 + local.tee 7 + i32.const 3 + i32.shl + local.get 6 + i32.add + local.tee 10 + i32.store offset=260 + local.get 6 + local.get 1 + local.get 7 + memory.copy + local.get 10 + local.get 2 + local.get 0 + i32.load offset=16 + memory.copy + local.get 8 + local.get 15 + i32.store8 + local.get 3 + i32.eqz + br_if 2 (;@3;) + local.get 3 + local.get 8 + i32.store offset=8 + br 3 (;@2;) + end + end + global.get 1 + i32.eqz + if ;; label = @4 + local.get 0 + local.get 0 + i32.load offset=8 + i32.const 1 + i32.add + i32.store offset=8 + local.get 8 + local.get 1 + local.get 0 + i32.load offset=12 + memory.copy + local.get 10 + local.get 2 + local.get 0 + i32.load offset=16 + memory.copy + local.get 7 + i32.eqz + br_if 1 (;@3;) + local.get 7 + local.get 15 + i32.store8 + br 2 (;@2;) + end + end + local.get 13 + i32.const 10 + i32.eq + i32.const 1 + global.get 1 + select + if ;; label = @3 + call $runtime.nilPanic + i32.const 10 + global.get 1 + i32.const 1 + i32.eq + br_if 2 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @3 + unreachable + end + end + global.get 1 + i32.eqz + if ;; label = @2 + i32.const 2516 + local.get 17 + i32.store + local.get 4 + i32.const 272 + i32.add + global.set $__stack_pointer + end + return + end + local.set 5 + global.get 2 + i32.load + local.get 5 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 5 + local.get 0 + i32.store + local.get 5 + local.get 1 + i32.store offset=4 + local.get 5 + local.get 2 + i32.store offset=8 + local.get 5 + local.get 3 + i32.store offset=12 + local.get 5 + local.get 4 + i32.store offset=16 + local.get 5 + local.get 6 + i32.store offset=20 + local.get 5 + local.get 8 + i32.store offset=24 + local.get 5 + local.get 7 + i32.store offset=28 + local.get 5 + local.get 9 + i32.store offset=32 + local.get 5 + local.get 10 + i32.store offset=36 + local.get 5 + local.get 11 + i32.store offset=40 + local.get 5 + local.get 12 + i32.store offset=44 + local.get 5 + local.get 14 + i32.store offset=48 + local.get 5 + local.get 15 + i32.store offset=52 + local.get 5 + local.get 16 + i32.store offset=56 + local.get 5 + local.get 17 + i32.store offset=60 + global.get 2 + global.get 2 + i32.load + i32.const -64 + i32.sub + i32.store) + (func $main.main$1 (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + i32.const 2260 + i32.const 9 + call $github.com/project-mahiwa/mahiwa-frontend-go/serial.Println + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $malloc.command_export (type 5) (param i32) (result i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + call $malloc + local.set 1 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 1 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + local.get 0 + return + end + unreachable + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + i32.const 0) + (func $free.command_export (type 1) (param i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + local.set 0 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + call $free + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + end + return + end + local.set 1 + global.get 2 + i32.load + local.get 1 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $calloc.command_export (type 4) (param i32 i32) (result i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + local.get 1 + call $calloc + local.set 2 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 2 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + local.get 0 + return + end + unreachable + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store + i32.const 0) + (func $realloc.command_export (type 4) (param i32 i32) (result i32) + (local i32) + global.get 1 + i32.const 2 + i32.eq + if ;; label = @1 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.sub + i32.store + global.get 2 + i32.load + local.tee 1 + i32.load + local.set 0 + local.get 1 + i32.load offset=4 + local.set 1 + end + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + local.get 0 + local.get 1 + call $realloc + local.set 2 + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + local.get 2 + local.set 0 + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + local.get 0 + return + end + unreachable + end + local.set 2 + global.get 2 + i32.load + local.get 2 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store + global.get 2 + i32.load + local.tee 2 + local.get 0 + i32.store + local.get 2 + local.get 1 + i32.store offset=4 + global.get 2 + global.get 2 + i32.load + i32.const 8 + i32.add + i32.store + i32.const 0) + (func $_start.command_export (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $_start + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $resume.command_export (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $resume + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $go_scheduler.command_export (type 0) + (local i32) + block (result i32) ;; label = @1 + global.get 1 + i32.const 2 + i32.eq + if (result i32) ;; label = @2 + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.sub + i32.store + global.get 2 + i32.load + i32.load + else + i32.const 0 + end + i32.const 0 + global.get 1 + select + i32.eqz + if ;; label = @2 + call $go_scheduler + i32.const 0 + global.get 1 + i32.const 1 + i32.eq + br_if 1 (;@1;) + drop + end + global.get 1 + i32.eqz + if ;; label = @2 + call $__wasm_call_dtors + end + return + end + local.set 0 + global.get 2 + i32.load + local.get 0 + i32.store + global.get 2 + global.get 2 + i32.load + i32.const 4 + i32.add + i32.store) + (func $asyncify_start_unwind (type 1) (param i32) + i32.const 1 + global.set 1 + local.get 0 + global.set 2 + global.get 2 + i32.load + global.get 2 + i32.load offset=4 + i32.gt_u + if ;; label = @1 + unreachable + end) + (func $asyncify_stop_unwind (type 0) + i32.const 0 + global.set 1 + global.get 2 + i32.load + global.get 2 + i32.load offset=4 + i32.gt_u + if ;; label = @1 + unreachable + end) + (func $asyncify_start_rewind (type 1) (param i32) + i32.const 2 + global.set 1 + local.get 0 + global.set 2 + global.get 2 + i32.load + global.get 2 + i32.load offset=4 + i32.gt_u + if ;; label = @1 + unreachable + end) + (func $asyncify_stop_rewind (type 0) + i32.const 0 + global.set 1 + global.get 2 + i32.load + global.get 2 + i32.load offset=4 + i32.gt_u + if ;; label = @1 + unreachable + end) + (func $asyncify_get_state (type 6) (result i32) + global.get 1) + (table (;0;) 6 6 funcref) + (memory (;0;) 1 1) + (global $__stack_pointer (mut i32) (i32.const 2048)) + (global (;1;) (mut i32) (i32.const 0)) + (global (;2;) (mut i32) (i32.const 0)) + (export "memory" (memory 0)) + (export "malloc" (func $malloc.command_export)) + (export "free" (func $free.command_export)) + (export "calloc" (func $calloc.command_export)) + (export "realloc" (func $realloc.command_export)) + (export "_start" (func $_start.command_export)) + (export "resume" (func $resume.command_export)) + (export "go_scheduler" (func $go_scheduler.command_export)) + (export "asyncify_start_unwind" (func $asyncify_start_unwind)) + (export "asyncify_stop_unwind" (func $asyncify_stop_unwind)) + (export "asyncify_start_rewind" (func $asyncify_start_rewind)) + (export "asyncify_stop_rewind" (func $asyncify_stop_rewind)) + (export "asyncify_get_state" (func $asyncify_get_state)) + (elem (;0;) (i32.const 1) func $runtime.run$1$gowrapper $runtime.resume$1$gowrapper $main.main$1$gowrapper $runtime.memequal $runtime.hash32) + (data $.rodata (i32.const 2048) "\0astack overflowfree: invalid pointer\00\00\00\00\0f\08\00\00\15\00\00\00realloc: invalid pointer0\08\00\00\18\00\00\00out of memorypanic: panic: runtime error: nil pointer dereferenceindex out of rangeslice out of rangeunreachable\b5\08\00\00\0b\00\00\00main routinegoroutine") + (data $.data (i32.const 2272) "\c1\82\01\00(\09\00\00\00\00\00\00\e0\09\00\00\c1\82\01\00\00\00\00\00\04\00\00\00\0c\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\05")) diff --git a/_examples/not_support/tinygo_func_test/target.json b/_examples/not_support/tinygo_func_test/target.json new file mode 100644 index 0000000..acff0f3 --- /dev/null +++ b/_examples/not_support/tinygo_func_test/target.json @@ -0,0 +1,8 @@ +{ + "inherits": ["wasm"], + "ldflags": [ + "--initial-memory=65536", + "--max-memory=65536", + "-zstack-size=2048" + ] +}