From 08a6abbd96214e34494b0e5a50fc85230efa4833 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Tue, 23 Nov 2021 18:42:42 +0200 Subject: [PATCH 1/3] refactor pipeline --- src/module.ts | 5 +- tests/compiler/binary.optimized.wat | 8 +- tests/compiler/call-super.optimized.wat | 431 +- tests/compiler/class-implements.optimized.wat | 416 +- .../class-overloading-cast.optimized.wat | 475 +- .../compiler/class-overloading.optimized.wat | 423 +- tests/compiler/class.optimized.wat | 418 +- tests/compiler/const-folding.optimized.wat | 8 + tests/compiler/const-folding.ts | 4 + tests/compiler/const-folding.untouched.wat | 24 + tests/compiler/constructor.optimized.wat | 416 +- tests/compiler/do.optimized.wat | 418 +- .../empty-exportruntime.optimized.wat | 53 +- tests/compiler/empty-new.optimized.wat | 31 +- tests/compiler/exports.optimized.wat | 416 +- .../exportstar-rereexport.optimized.wat | 418 +- .../extends-baseaggregate.optimized.wat | 421 +- .../compiler/extends-recursive.optimized.wat | 418 +- tests/compiler/features/simd.optimized.wat | 22 +- .../field-initialization.optimized.wat | 445 +- tests/compiler/field.optimized.wat | 418 +- tests/compiler/for.optimized.wat | 418 +- tests/compiler/function-call.optimized.wat | 416 +- .../function-expression.optimized.wat | 418 +- tests/compiler/getter-call.optimized.wat | 418 +- tests/compiler/heap.optimized.wat | 98 +- .../implicit-getter-setter.optimized.wat | 418 +- tests/compiler/infer-array.optimized.wat | 479 +- tests/compiler/infer-generic.optimized.wat | 441 +- tests/compiler/inlining.optimized.wat | 416 +- tests/compiler/instanceof-class.optimized.wat | 422 +- tests/compiler/issues/1095.optimized.wat | 438 +- tests/compiler/issues/1225.optimized.wat | 418 +- tests/compiler/issues/1699.optimized.wat | 418 +- tests/compiler/logical.optimized.wat | 418 +- tests/compiler/managed-cast.optimized.wat | 477 +- tests/compiler/new.optimized.wat | 416 +- tests/compiler/number.optimized.wat | 425 +- tests/compiler/object-literal.optimized.wat | 360 +- .../optional-typeparameters.optimized.wat | 416 +- tests/compiler/possibly-null.optimized.wat | 4 +- tests/compiler/reexport.optimized.wat | 416 +- tests/compiler/rereexport.optimized.wat | 418 +- tests/compiler/resolve-access.optimized.wat | 547 +- tests/compiler/resolve-binary.optimized.wat | 488 +- .../resolve-elementaccess.optimized.wat | 489 +- .../resolve-function-expression.optimized.wat | 551 +- tests/compiler/resolve-nested.optimized.wat | 428 +- tests/compiler/resolve-new.optimized.wat | 422 +- .../resolve-propertyaccess.optimized.wat | 431 +- tests/compiler/resolve-ternary.optimized.wat | 1068 +- tests/compiler/resolve-unary.optimized.wat | 436 +- tests/compiler/rt/finalize.optimized.wat | 432 +- tests/compiler/rt/instanceof.optimized.wat | 416 +- .../runtime-incremental-export.optimized.wat | 53 +- .../rt/runtime-minimal-export.optimized.wat | 52 +- tests/compiler/std-wasi/console.optimized.wat | 490 +- tests/compiler/std-wasi/crypto.optimized.wat | 499 +- tests/compiler/std-wasi/process.optimized.wat | 810 +- .../compiler/std/array-literal.optimized.wat | 418 +- tests/compiler/std/array.optimized.wat | 4580 +++---- tests/compiler/std/arraybuffer.optimized.wat | 423 +- tests/compiler/std/dataview.optimized.wat | 437 +- tests/compiler/std/date.optimized.wat | 934 +- tests/compiler/std/map.optimized.wat | 6236 +++++---- tests/compiler/std/math.optimized.wat | 266 +- tests/compiler/std/new.optimized.wat | 457 +- .../std/operator-overloading.optimized.wat | 461 +- tests/compiler/std/pointer.optimized.wat | 78 +- tests/compiler/std/set.optimized.wat | 2516 ++-- tests/compiler/std/static-array.optimized.wat | 418 +- tests/compiler/std/staticarray.optimized.wat | 1527 +-- .../std/string-casemapping.optimized.wat | 762 +- .../std/string-encoding.optimized.wat | 670 +- tests/compiler/std/string.optimized.wat | 1503 +- tests/compiler/std/symbol.optimized.wat | 531 +- tests/compiler/std/typedarray.optimized.wat | 11416 ++++++++-------- tests/compiler/std/uri.optimized.wat | 420 +- tests/compiler/super-inline.optimized.wat | 416 +- tests/compiler/templateliteral.optimized.wat | 428 +- tests/compiler/ternary.optimized.wat | 4 +- tests/compiler/throw.optimized.wat | 49 +- tests/compiler/typeof.optimized.wat | 460 +- tests/compiler/unary.optimized.wat | 4 + tests/compiler/wasi/seed.optimized.wat | 2 +- tests/compiler/wasi/trace.optimized.wat | 90 +- tests/compiler/while.optimized.wat | 418 +- 87 files changed, 29046 insertions(+), 28746 deletions(-) diff --git a/src/module.ts b/src/module.ts index 5fc506c8e5..2ad570edde 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2311,12 +2311,12 @@ export class Module { passes.push("rse"); passes.push("vacuum"); passes.push("ssa-nomerge"); - passes.push("simplify-globals-optimizing"); passes.push("local-cse"); passes.push("remove-unused-brs"); passes.push("remove-unused-names"); passes.push("merge-blocks"); passes.push("precompute-propagate"); + passes.push("simplify-globals-optimizing"); } if (optimizeLevel >= 3) { passes.push("simplify-locals-nostructure"); @@ -2339,13 +2339,12 @@ export class Module { if (optimizeLevel >= 3 || shrinkLevel >= 2) { passes.push("inlining"); passes.push("precompute-propagate"); + passes.push("simplify-globals-optimizing"); } else { passes.push("precompute"); } if (optimizeLevel >= 2 || shrinkLevel >= 1) { passes.push("pick-load-signs"); - passes.push("simplify-globals-optimizing"); - passes.push("simplify-globals-optimizing"); } passes.push("simplify-locals-notee-nostructure"); passes.push("vacuum"); diff --git a/tests/compiler/binary.optimized.wat b/tests/compiler/binary.optimized.wat index 36ab116b87..2ffdaefeb4 100644 --- a/tests/compiler/binary.optimized.wat +++ b/tests/compiler/binary.optimized.wat @@ -168,7 +168,9 @@ global.set $binary/i i32.const 1 global.set $binary/i - i32.const 0 + global.get $binary/i + i32.const 1 + i32.sub global.set $binary/i i32.const 0 global.set $binary/i @@ -210,7 +212,9 @@ global.set $binary/I i64.const 1 global.set $binary/I - i64.const 0 + global.get $binary/I + i64.const 1 + i64.sub global.set $binary/I i64.const 0 global.set $binary/I diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index f6c479de9e..fb578e1489 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -595,12 +595,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -618,11 +618,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17984 @@ -630,14 +630,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -647,17 +647,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -674,116 +674,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17980 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -794,146 +721,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17980 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17980 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17980 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17980 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1666,7 +1668,7 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1706,6 +1708,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 local.get $0 i32.store local.get $0 @@ -1804,7 +1807,7 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1832,6 +1835,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 local.get $0 i32.store local.get $0 @@ -1927,7 +1931,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1967,6 +1971,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 local.get $0 i32.store local.get $0 @@ -2038,7 +2043,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2066,6 +2071,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 local.get $0 i32.store local.get $0 @@ -2137,7 +2143,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2165,6 +2171,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 local.get $0 i32.store local.get $0 diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index f4feb9b159..4375c0da2f 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -617,12 +617,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -640,11 +640,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17952 @@ -652,14 +652,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -669,17 +669,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -696,116 +696,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17948 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -816,146 +743,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17948 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17948 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17948 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17948 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index 3ad36c7a3a..e113645d5f 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -631,12 +631,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -654,11 +654,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18096 @@ -666,14 +666,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -683,17 +683,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -710,116 +710,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18084 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -830,146 +757,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18084 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18084 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18084 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18084 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1432,6 +1434,7 @@ (func $start:class-overloading-cast (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1443,9 +1446,10 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 memory.size @@ -1554,7 +1558,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1578,6 +1582,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1587,22 +1592,23 @@ local.get $0 global.set $class-overloading-cast/v3 global.get $~lib/memory/__stack_pointer + local.tee $0 block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/v - local.tee $0 + local.tee $1 i32.store offset=8 block $default block $case1 - local.get $0 + local.get $1 i32.const 8 i32.sub i32.load - local.tee $0 + local.tee $1 i32.const 3 i32.ne if - local.get $0 + local.get $1 i32.const 5 i32.eq br_if $case1 @@ -1616,12 +1622,12 @@ end i32.const 1456 end - local.tee $0 + local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1488 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1655,14 +1661,16 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.tee $1 block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) - global.get $~lib/memory/__stack_pointer - local.tee $0 + local.get $0 global.get $class-overloading-cast/v3 - local.tee $1 + local.tee $0 i32.store offset=8 i32.const 1488 - local.get $1 + local.get $0 i32.const 8 i32.sub i32.load @@ -1672,14 +1680,12 @@ drop i32.const 1456 end - local.set $1 - local.get $0 - local.get $1 + local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1488 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1709,7 +1715,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1733,6 +1739,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1754,9 +1761,10 @@ i32.load drop global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 1456 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1456 i32.store offset=4 i32.const 1456 @@ -1772,22 +1780,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading-cast/c local.tee $1 + local.tee $2 + global.get $class-overloading-cast/c + local.tee $0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 1600 i32.store offset=12 - local.get $1 + local.get $0 i32.const 8 i32.sub i32.load drop - local.get $0 + local.get $1 i32.const 1456 i32.store - local.get $0 + local.get $1 i32.const 1456 i32.store offset=4 i32.const 1456 diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index f715c318b9..7adf4a0b32 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -655,12 +655,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -678,11 +678,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18320 @@ -690,14 +690,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -707,17 +707,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -734,116 +734,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18316 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -854,146 +781,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18316 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18316 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18316 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18316 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1552,6 +1554,7 @@ (func $start:class-overloading (local $0 i32) (local $1 i32) + (local $2 i32) block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2683,7 +2686,8 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2757,7 +2761,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2781,6 +2785,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index c395b16052..a2e212bf22 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -191,6 +191,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -735,12 +737,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -758,11 +760,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17984 @@ -770,14 +772,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -787,17 +789,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -814,116 +816,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17972 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -934,146 +863,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17972 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17972 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17972 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17972 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/const-folding.optimized.wat b/tests/compiler/const-folding.optimized.wat index 4ceec9de33..a296656855 100644 --- a/tests/compiler/const-folding.optimized.wat +++ b/tests/compiler/const-folding.optimized.wat @@ -1,8 +1,12 @@ (module (type $i64_=>_i64 (func (param i64) (result i64))) + (type $none_=>_none (func)) + (global $const-folding/x (mut i32) (i32.const 0)) (memory $0 0) + (export "x" (global $const-folding/x)) (export "test" (func $const-folding/test)) (export "memory" (memory $0)) + (start $~start) (func $const-folding/test (param $0 i64) (result i64) local.get $0 i64.const 1 @@ -12,4 +16,8 @@ i64.shr_u i64.add ) + (func $~start + i32.const 30 + global.set $const-folding/x + ) ) diff --git a/tests/compiler/const-folding.ts b/tests/compiler/const-folding.ts index a29303b891..621af082ab 100644 --- a/tests/compiler/const-folding.ts +++ b/tests/compiler/const-folding.ts @@ -1,3 +1,7 @@ +let w = 42 >> 1; +w = (w & 0xFC) | (w >> 1); +export const x = w; + export function test(value: u64): u64 { var mod1: u64 = -1; var mod2: u64 = -1; diff --git a/tests/compiler/const-folding.untouched.wat b/tests/compiler/const-folding.untouched.wat index 7c4b547684..96f9e865cf 100644 --- a/tests/compiler/const-folding.untouched.wat +++ b/tests/compiler/const-folding.untouched.wat @@ -1,13 +1,34 @@ (module + (type $none_=>_none (func)) (type $i64_=>_i64 (func (param i64) (result i64))) + (global $const-folding/w (mut i32) (i32.const 0)) + (global $const-folding/x (mut i32) (i32.const 0)) (global $~lib/memory/__data_end i32 (i32.const 8)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) (global $~lib/memory/__heap_base i32 (i32.const 16392)) (memory $0 0) (table $0 1 funcref) (elem $0 (i32.const 1)) + (export "x" (global $const-folding/x)) (export "test" (func $const-folding/test)) (export "memory" (memory $0)) + (start $~start) + (func $start:const-folding + i32.const 42 + i32.const 1 + i32.shr_s + global.set $const-folding/w + global.get $const-folding/w + i32.const 252 + i32.and + global.get $const-folding/w + i32.const 1 + i32.shr_s + i32.or + global.set $const-folding/w + global.get $const-folding/w + global.set $const-folding/x + ) (func $const-folding/test (param $0 i64) (result i64) (local $1 i64) (local $2 i64) @@ -45,4 +66,7 @@ local.get $4 i64.add ) + (func $~start + call $start:const-folding + ) ) diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index b6d916a28a..fc7d5f795c 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -672,12 +672,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -695,11 +695,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18000 @@ -707,14 +707,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -724,17 +724,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -751,116 +751,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17988 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -871,146 +798,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17988 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17988 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17988 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17988 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index a8059a0de2..d5e67b8145 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -595,12 +595,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -618,11 +618,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17904 @@ -630,14 +630,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -647,17 +647,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -674,116 +674,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17892 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -794,146 +721,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17892 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17892 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17892 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17892 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1683,8 +1685,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 9973399dfc..5b9b51a85e 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -168,10 +168,10 @@ local.get $0 call $~lib/rt/itcms/Object#unlink global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) @@ -179,7 +179,7 @@ else i32.const 1568 i32.load - local.get $1 + local.get $2 i32.lt_u if i32.const 1248 @@ -189,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1572 @@ -197,13 +197,15 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.eqz i32.const 2 @@ -212,17 +214,17 @@ i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $0 i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -741,12 +743,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -764,11 +766,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17984 @@ -776,14 +778,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -793,17 +795,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -852,11 +854,11 @@ if local.get $0 global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -925,11 +927,11 @@ local.get $0 i32.ne if + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1071,7 +1073,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index a4ef4381ca..7c6c20b481 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -591,12 +591,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -614,11 +614,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17856 @@ -626,14 +626,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -643,17 +643,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -702,11 +702,11 @@ if local.get $0 global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -775,11 +775,11 @@ local.get $0 i32.ne if + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -921,7 +921,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1243,8 +1244,8 @@ i32.load offset=8 local.set $2 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index 9acd68bb8b..9ae8ab4f65 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -645,12 +645,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -668,11 +668,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17872 @@ -680,14 +680,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -697,17 +697,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -724,116 +724,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -844,146 +771,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17868 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17868 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17868 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index 71db4dbb90..eae2c92bcf 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -646,12 +646,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -669,11 +669,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17968 @@ -681,14 +681,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -698,17 +698,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -725,116 +725,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17956 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -845,146 +772,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17956 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17956 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17956 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17956 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1428,8 +1430,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index b33d051df5..e856bc8727 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -197,6 +197,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -741,12 +743,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -764,11 +766,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18160 @@ -776,14 +778,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -793,17 +795,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -820,116 +822,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18156 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -940,146 +869,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18156 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1280 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18156 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1280 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18156 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18156 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1552 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1552 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2842,7 +2846,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2876,6 +2880,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index f5b4813af7..7f45bd9d5d 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -186,6 +186,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -730,12 +732,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -753,11 +755,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17872 @@ -765,14 +767,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -782,17 +784,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -809,116 +811,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -929,146 +858,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17868 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17868 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17868 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/features/simd.optimized.wat b/tests/compiler/features/simd.optimized.wat index 95b3156975..b6c1057cda 100644 --- a/tests/compiler/features/simd.optimized.wat +++ b/tests/compiler/features/simd.optimized.wat @@ -531,12 +531,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -554,11 +554,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17616 @@ -566,14 +566,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -583,17 +583,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 964b83e93f..d0bb2dd8e2 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -204,6 +204,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -748,12 +750,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -771,11 +773,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18384 @@ -783,14 +785,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -800,17 +802,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -827,116 +829,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18380 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -947,146 +876,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18380 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18380 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18380 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18380 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1893,7 +1897,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -1905,18 +1908,19 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i64.const 0 i64.store offset=16 - local.get $0 + local.get $1 i64.const 0 i64.store offset=24 - local.get $0 + local.get $1 i64.const 0 i64.store offset=32 memory.size @@ -2398,32 +2402,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 4 i32.const 13 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 local.get $0 - local.tee $1 i32.store local.get $0 if - local.get $3 - local.get $1 + local.get $2 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.load local.get $0 i32.ne diff --git a/tests/compiler/field.optimized.wat b/tests/compiler/field.optimized.wat index ad24b303df..bdf6280e80 100644 --- a/tests/compiler/field.optimized.wat +++ b/tests/compiler/field.optimized.wat @@ -182,6 +182,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -726,12 +728,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -749,11 +751,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17920 @@ -761,14 +763,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -778,17 +780,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -805,116 +807,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -925,146 +854,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17908 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17908 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17908 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17908 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index b281f13bd8..94159af172 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -595,12 +595,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -618,11 +618,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17904 @@ -630,14 +630,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -647,17 +647,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -674,116 +674,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17892 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -794,146 +721,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17892 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17892 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17892 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17892 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1680,8 +1682,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index 26a04e5b86..4f4a6816c9 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -633,12 +633,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -656,11 +656,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18224 @@ -668,14 +668,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -685,17 +685,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -712,116 +712,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18220 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -832,146 +759,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18220 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18220 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18220 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18220 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index dad8c5e4aa..97171dcb41 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -250,6 +250,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -794,12 +796,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -817,11 +819,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18592 @@ -829,14 +831,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -846,17 +848,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -873,116 +875,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18580 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -993,146 +922,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18580 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1664 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18580 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1664 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18580 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18580 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1936 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1936 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 848473f30a..36336061a7 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -598,12 +598,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -621,11 +621,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17904 @@ -633,14 +633,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -650,17 +650,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -677,116 +677,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17900 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -797,146 +724,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17900 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17900 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17900 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17900 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1288,8 +1290,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index 7f0815b046..6b39a6a550 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -540,12 +540,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -563,11 +563,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17664 @@ -575,14 +575,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -592,17 +592,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1678,14 +1678,14 @@ local.get $0 local.get $2 call $~lib/rt/tlsf/allocateBlock - local.set $7 + local.set $6 local.get $1 i32.load i32.const -4 i32.and - local.set $6 + local.set $7 block $~lib/util/memory/memmove|inlined.0 - local.get $7 + local.get $6 i32.const 4 i32.add local.tee $2 @@ -1698,10 +1698,10 @@ local.get $3 local.get $2 i32.sub - local.get $6 + local.get $7 i32.sub i32.const 0 - local.get $6 + local.get $7 i32.const 1 i32.shl i32.sub @@ -1709,7 +1709,7 @@ if local.get $2 local.get $3 - local.get $6 + local.get $7 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end @@ -1730,13 +1730,13 @@ i32.const 7 i32.and if - local.get $6 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $6 + local.get $7 i32.const 1 i32.sub - local.set $6 + local.set $7 local.get $2 local.tee $4 i32.const 1 @@ -1755,7 +1755,7 @@ end end loop $while-continue|1 - local.get $6 + local.get $7 i32.const 8 i32.ge_u if @@ -1763,10 +1763,10 @@ local.get $3 i64.load i64.store - local.get $6 + local.get $7 i32.const 8 i32.sub - local.set $6 + local.set $7 local.get $2 i32.const 8 i32.add @@ -1780,7 +1780,7 @@ end end loop $while-continue|2 - local.get $6 + local.get $7 if local.get $2 local.tee $4 @@ -1796,10 +1796,10 @@ local.get $5 i32.load8_u i32.store8 - local.get $6 + local.get $7 i32.const 1 i32.sub - local.set $6 + local.set $7 br $while-continue|2 end end @@ -1814,22 +1814,22 @@ if loop $while-continue|3 local.get $2 - local.get $6 + local.get $7 i32.add i32.const 7 i32.and if - local.get $6 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $6 + local.get $7 i32.const 1 i32.sub - local.tee $6 + local.tee $7 local.get $2 i32.add local.get $3 - local.get $6 + local.get $7 i32.add i32.load8_u i32.store8 @@ -1837,18 +1837,18 @@ end end loop $while-continue|4 - local.get $6 + local.get $7 i32.const 8 i32.ge_u if - local.get $6 + local.get $7 i32.const 8 i32.sub - local.tee $6 + local.tee $7 local.get $2 i32.add local.get $3 - local.get $6 + local.get $7 i32.add i64.load i64.store @@ -1857,16 +1857,16 @@ end end loop $while-continue|5 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.const 1 i32.sub - local.tee $6 + local.tee $7 local.get $2 i32.add local.get $3 - local.get $6 + local.get $7 i32.add i32.load8_u i32.store8 @@ -1889,7 +1889,7 @@ local.get $1 call $~lib/rt/tlsf/insertBlock end - local.get $7 + local.get $6 ) (func $~lib/memory/heap.realloc (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1922,10 +1922,10 @@ local.set $0 local.get $1 call $~lib/rt/tlsf/prepareSize - local.tee $3 + local.tee $5 local.get $0 i32.load - local.tee $4 + local.tee $3 i32.const -4 i32.and local.tee $6 @@ -1933,7 +1933,7 @@ if local.get $2 local.get $0 - local.get $3 + local.get $5 call $~lib/rt/tlsf/prepareBlock br $__inlined_func$~lib/rt/tlsf/reallocateBlock end @@ -1945,12 +1945,13 @@ i32.const -4 i32.and i32.add - local.tee $5 + local.tee $4 i32.load local.tee $7 i32.const 1 i32.and if + local.get $5 local.get $6 i32.const 4 i32.add @@ -1959,22 +1960,21 @@ i32.and i32.add local.tee $6 - local.get $3 - i32.ge_u + i32.le_u if local.get $2 - local.get $5 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $0 local.get $6 - local.get $4 + local.get $3 i32.const 3 i32.and i32.or i32.store local.get $2 local.get $0 - local.get $3 + local.get $5 call $~lib/rt/tlsf/prepareBlock br $__inlined_func$~lib/rt/tlsf/reallocateBlock end diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index 1fdd91429c..6207fafec0 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -192,6 +192,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -736,12 +738,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -759,11 +761,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17872 @@ -771,14 +773,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -788,17 +790,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -815,116 +817,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -935,146 +864,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17868 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17868 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17868 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17868 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index 8ee55c5d7f..e9ecb7d72c 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -218,6 +218,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -762,12 +764,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -785,11 +787,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18608 @@ -797,14 +799,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -814,17 +816,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -841,116 +843,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18596 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -961,146 +890,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18596 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18596 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18596 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18596 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2426,9 +2430,10 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 memory.size @@ -2807,15 +2812,15 @@ local.get $0 local.get $1 i32.shl - local.tee $8 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new local.set $6 local.get $3 if block $~lib/util/memory/memmove|inlined.0 - local.get $8 - local.set $7 + local.get $7 + local.set $8 local.get $6 local.tee $1 local.get $3 @@ -2824,10 +2829,10 @@ local.get $3 local.get $1 i32.sub - local.get $7 + local.get $8 i32.sub i32.const 0 - local.get $7 + local.get $8 i32.const 1 i32.shl i32.sub @@ -2835,7 +2840,7 @@ if local.get $1 local.get $3 - local.get $7 + local.get $8 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end @@ -2856,13 +2861,13 @@ i32.const 7 i32.and if - local.get $7 + local.get $8 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 + local.set $8 local.get $1 local.tee $4 i32.const 1 @@ -2881,7 +2886,7 @@ end end loop $while-continue|1 - local.get $7 + local.get $8 i32.const 8 i32.ge_u if @@ -2889,10 +2894,10 @@ local.get $3 i64.load i64.store - local.get $7 + local.get $8 i32.const 8 i32.sub - local.set $7 + local.set $8 local.get $1 i32.const 8 i32.add @@ -2906,7 +2911,7 @@ end end loop $while-continue|2 - local.get $7 + local.get $8 if local.get $1 local.tee $4 @@ -2922,10 +2927,10 @@ local.get $5 i32.load8_u i32.store8 - local.get $7 + local.get $8 i32.const 1 i32.sub - local.set $7 + local.set $8 br $while-continue|2 end end @@ -2940,22 +2945,22 @@ if loop $while-continue|3 local.get $1 - local.get $7 + local.get $8 i32.add i32.const 7 i32.and if - local.get $7 + local.get $8 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 + local.get $8 i32.const 1 i32.sub - local.tee $7 + local.tee $8 local.get $1 i32.add local.get $3 - local.get $7 + local.get $8 i32.add i32.load8_u i32.store8 @@ -2963,18 +2968,18 @@ end end loop $while-continue|4 - local.get $7 + local.get $8 i32.const 8 i32.ge_u if - local.get $7 + local.get $8 i32.const 8 i32.sub - local.tee $7 + local.tee $8 local.get $1 i32.add local.get $3 - local.get $7 + local.get $8 i32.add i64.load i64.store @@ -2983,16 +2988,16 @@ end end loop $while-continue|5 - local.get $7 + local.get $8 if - local.get $7 + local.get $8 i32.const 1 i32.sub - local.tee $7 + local.tee $8 local.get $1 i32.add local.get $3 - local.get $7 + local.get $8 i32.add i32.load8_u i32.store8 @@ -3022,7 +3027,7 @@ local.get $6 i32.store offset=4 local.get $1 - local.get $8 + local.get $7 i32.store offset=8 local.get $1 local.get $0 diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index 8b743ab165..e2aa8ab8b9 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -620,12 +620,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -643,11 +643,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18080 @@ -655,14 +655,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -672,17 +672,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -699,116 +699,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18068 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -819,146 +746,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18068 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1296 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18068 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1296 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18068 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18068 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1568 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1568 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1341,9 +1343,10 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i32.const 0 i32.store offset=8 local.get $2 @@ -1354,15 +1357,15 @@ i32.store offset=4 i32.const 1164 i32.load - local.set $3 + local.set $2 loop $for-loop|0 - local.get $3 + local.get $2 i32.const 1164 i32.load - local.tee $2 + local.tee $3 local.get $2 local.get $3 - i32.gt_s + i32.lt_s select local.get $0 i32.gt_s @@ -1422,6 +1425,7 @@ global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1430,14 +1434,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.store global.get $~lib/memory/__stack_pointer @@ -1445,13 +1449,12 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $1 + local.get $0 i32.const 2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 12 diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index 30e159f4f7..3618cf24e1 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -607,12 +607,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -630,11 +630,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17968 @@ -642,14 +642,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -659,17 +659,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -686,116 +686,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17964 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -806,146 +733,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17964 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1200 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17964 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1200 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17964 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17964 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1472 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1472 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index 613c843881..e0c252b580 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -609,12 +609,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -632,11 +632,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17952 @@ -644,14 +644,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -661,17 +661,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -688,116 +688,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17948 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -808,146 +735,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17948 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17948 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17948 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17948 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1288,7 +1290,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1312,6 +1314,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1338,7 +1341,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1362,6 +1365,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index 64cec2a8aa..461373c363 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -186,6 +186,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -730,12 +732,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -753,11 +755,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18016 @@ -765,14 +767,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -782,17 +784,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -809,116 +811,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18004 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -929,146 +858,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18004 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18004 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18004 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18004 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1471,12 +1475,12 @@ i32.store local.get $0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1456 i32.store - local.get $0 + local.get $1 i32.const 1456 call $byn-split-outlined-A$~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -1484,7 +1488,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1495,15 +1499,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 local.get $0 + local.get $1 i32.load - local.tee $1 + local.tee $0 i32.store local.get $1 + local.get $0 i32.eqz if i32.const 1488 @@ -1514,12 +1519,11 @@ unreachable end local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 if - local.get $0 local.get $1 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index b5318efd08..3a075ae2cc 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -604,12 +604,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -627,11 +627,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17920 @@ -639,14 +639,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -656,17 +656,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -683,116 +683,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -803,146 +730,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17908 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17908 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17908 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1259,8 +1261,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index 3049127451..32c6c86a99 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -193,6 +193,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -737,12 +739,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -760,11 +762,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18144 @@ -772,14 +774,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -789,17 +791,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -816,116 +818,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18140 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -936,146 +865,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18140 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1216 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18140 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18140 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18140 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1488 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index 61a435064f..e1459dc158 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -595,12 +595,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -618,11 +618,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17920 @@ -630,14 +630,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -647,17 +647,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -674,116 +674,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -794,146 +721,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17908 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17908 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17908 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1360,8 +1362,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 4f8758408a..9a3e088a52 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -599,12 +599,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -622,11 +622,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18064 @@ -634,14 +634,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -651,17 +651,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -678,116 +678,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18060 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -798,146 +725,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18060 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18060 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18060 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18060 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1312,9 +1314,10 @@ call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1354,11 +1357,12 @@ local.get $0 i32.store call $managed-cast/Cat#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1370,29 +1374,29 @@ i32.const 0 i32.store block $__inlined_func$~lib/rt/__instanceof (result i32) - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1632 i32.load i32.le_u if loop $do-loop|0 i32.const 1 - local.get $1 + local.get $0 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof drop - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $1 + local.tee $0 br_if $do-loop|0 end end @@ -1408,19 +1412,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1429,11 +1434,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store block $__inlined_func$~lib/rt/__instanceof15 (result i32) - local.get $0 + local.get $1 i32.eqz if i32.const 1456 @@ -1443,32 +1448,32 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1632 i32.load i32.le_u if loop $do-loop|017 i32.const 1 - local.get $1 + local.get $0 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof15 drop - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $1 + local.tee $0 br_if $do-loop|017 end end @@ -1484,19 +1489,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 8 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1556,9 +1562,10 @@ call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index 4d3a04ae76..0cdb707fd5 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -635,12 +635,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -658,11 +658,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17888 @@ -670,14 +670,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -687,17 +687,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -714,116 +714,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17884 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -834,146 +761,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17884 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17884 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17884 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17884 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 9ab69d4538..77d2283b5f 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -642,12 +642,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -665,11 +665,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 21072 @@ -677,14 +677,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -694,17 +694,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -721,116 +721,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 21068 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -841,146 +768,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 21068 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 21068 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 21068 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 21068 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3624,14 +3626,15 @@ global.set $~lib/rt/itcms/fromSpace global.get $number/a call $~lib/number/I32#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 3232 i32.store offset=4 - local.get $0 + local.get $1 i32.const 3232 call $~lib/string/String.__eq i32.eqz diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 735ea92ee8..f005203f3c 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -150,6 +150,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -739,12 +741,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -762,11 +764,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18160 @@ -774,14 +776,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -791,17 +793,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -868,116 +870,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18156 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -988,102 +917,177 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18156 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1104 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18156 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1104 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free + i32.const 18156 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3086,7 +3090,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3150,6 +3154,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -3457,7 +3462,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3515,6 +3520,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 local.get $1 i32.store offset=16 local.get $1 diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index 99cfd40ab5..c82e6ad09d 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -607,12 +607,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -630,11 +630,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17872 @@ -642,14 +642,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -659,17 +659,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -686,116 +686,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -806,146 +733,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17868 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17868 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17868 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/possibly-null.optimized.wat b/tests/compiler/possibly-null.optimized.wat index 0b5ec9002c..09e3f71e96 100644 --- a/tests/compiler/possibly-null.optimized.wat +++ b/tests/compiler/possibly-null.optimized.wat @@ -190,6 +190,7 @@ ) (func $export:possibly-null/testLogicalAndMulti (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -207,9 +208,10 @@ end global.get $~lib/memory/__stack_pointer local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 local.get $2 diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 132b69fd0b..5f738ef3d4 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -684,12 +684,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -707,11 +707,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17920 @@ -719,14 +719,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -736,17 +736,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -763,116 +763,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17916 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -883,146 +810,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17916 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17916 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17916 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17916 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index 39a0afc23c..795805bc3f 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -646,12 +646,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -669,11 +669,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17968 @@ -681,14 +681,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -698,17 +698,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -725,116 +725,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17956 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -845,146 +772,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17956 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17956 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17956 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17956 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1426,8 +1428,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index 9618845565..31c4a8d5c2 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -204,6 +204,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -748,12 +750,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -771,11 +773,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 19744 @@ -783,14 +785,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -800,17 +802,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -827,116 +829,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 19732 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -947,146 +876,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 19732 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 19732 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 19732 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 19732 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2515,7 +2519,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1728 - local.set $2 + local.set $1 br $__inlined_func$~lib/util/number/utoa64 end local.get $0 @@ -2525,7 +2529,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $1 local.tee $2 i32.const 100000 i32.lt_u @@ -2577,10 +2580,10 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 local.get $1 + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut else @@ -2635,25 +2638,25 @@ i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $while-continue|0 local.get $0 i64.const 100000000 i64.ge_u if - local.get $1 + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add local.get $0 local.get $0 @@ -2687,13 +2690,13 @@ i64.shl i64.or i64.store - local.get $1 + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add local.get $3 i32.const 10000 @@ -2721,10 +2724,10 @@ br $while-continue|0 end end - local.get $2 + local.get $1 local.get $0 i32.wrap_i64 - local.get $1 + local.get $2 call $~lib/util/number/utoa32_dec_lut end global.get $~lib/memory/__stack_pointer @@ -2732,7 +2735,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $2 + local.get $1 ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 @@ -2837,63 +2840,63 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $7 i32.const 0 i32.store i32.const 8 - local.set $7 + local.set $5 i32.const 1056 - local.set $0 + local.set $1 block $~lib/util/memory/memmove|inlined.0 i32.const 8 i32.const 0 call $~lib/rt/itcms/__new local.tee $4 - local.tee $1 + local.tee $0 i32.const 1056 i32.eq br_if $~lib/util/memory/memmove|inlined.0 i32.const 1048 - local.get $1 + local.get $0 i32.sub i32.const -16 i32.le_u if - local.get $1 + local.get $0 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end - local.get $1 + local.get $0 i32.const 1056 i32.lt_u if - local.get $1 + local.get $0 i32.const 7 i32.and i32.eqz if loop $while-continue|0 - local.get $1 + local.get $0 i32.const 7 i32.and if - local.get $7 + local.get $5 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 + local.get $5 i32.const 1 i32.sub - local.set $7 - local.get $1 + local.set $5 + local.get $0 local.tee $2 i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $1 local.get $2 local.get $3 i32.load8_u @@ -2902,77 +2905,77 @@ end end loop $while-continue|1 - local.get $7 + local.get $5 i32.const 8 i32.ge_u if - local.get $1 local.get $0 + local.get $1 i64.load i64.store - local.get $7 + local.get $5 i32.const 8 i32.sub - local.set $7 - local.get $1 - i32.const 8 - i32.add - local.set $1 + local.set $5 local.get $0 i32.const 8 i32.add local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 br $while-continue|1 end end end loop $while-continue|2 - local.get $7 + local.get $5 if - local.get $1 + local.get $0 local.tee $2 i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $1 local.get $2 local.get $3 i32.load8_u i32.store8 - local.get $7 + local.get $5 i32.const 1 i32.sub - local.set $7 + local.set $5 br $while-continue|2 end end else - local.get $1 + local.get $0 i32.const 7 i32.and i32.eqz if loop $while-continue|3 - local.get $1 - local.get $7 + local.get $0 + local.get $5 i32.add i32.const 7 i32.and if - local.get $7 + local.get $5 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 + local.get $5 i32.const 1 i32.sub - local.tee $7 - local.get $1 + local.tee $5 + local.get $0 i32.add - local.get $7 + local.get $5 i32.const 1056 i32.add i32.load8_u @@ -2981,17 +2984,17 @@ end end loop $while-continue|4 - local.get $7 + local.get $5 i32.const 8 i32.ge_u if - local.get $7 + local.get $5 i32.const 8 i32.sub - local.tee $7 - local.get $1 + local.tee $5 + local.get $0 i32.add - local.get $7 + local.get $5 i32.const 1056 i32.add i64.load @@ -3001,15 +3004,15 @@ end end loop $while-continue|5 - local.get $7 + local.get $5 if - local.get $7 + local.get $5 i32.const 1 i32.sub - local.tee $7 - local.get $1 + local.tee $5 + local.get $0 i32.add - local.get $7 + local.get $5 i32.const 1056 i32.add i32.load8_u @@ -3019,7 +3022,7 @@ end end end - local.get $5 + local.get $7 local.get $4 i32.store i32.const 16 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index 50b36ddc41..e81549e85a 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -937,12 +937,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -960,11 +960,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 27680 @@ -972,14 +972,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -989,17 +989,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1016,116 +1016,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 27676 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1136,146 +1063,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 27676 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1504 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 27676 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 27676 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 27676 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1776 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1776 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3923,12 +3925,13 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 local.get $0 @@ -4874,9 +4877,10 @@ i32.const 10880 i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 10880 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 10880 i32.store offset=4 i32.const 10880 @@ -4893,11 +4897,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 10912 @@ -4922,11 +4927,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 10944 @@ -4951,11 +4957,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 10976 @@ -4980,11 +4987,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11008 @@ -5009,11 +5017,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11040 @@ -5038,11 +5047,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11072 @@ -5067,11 +5077,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11104 @@ -5096,11 +5107,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11136 @@ -5125,11 +5137,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11168 @@ -5154,11 +5167,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11200 @@ -5183,11 +5197,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11232 @@ -5215,22 +5230,23 @@ call $resolve-binary/Bar#constructor global.set $resolve-binary/bar2 global.get $~lib/memory/__stack_pointer + local.tee $0 local.tee $1 global.get $resolve-binary/bar i32.store offset=4 local.get $1 global.get $resolve-binary/bar2 + local.tee $1 local.tee $2 - local.tee $0 i32.store offset=8 - local.get $0 + local.get $2 global.set $resolve-binary/bar - local.get $1 + local.get $0 global.get $resolve-binary/bar local.tee $0 i32.store local.get $0 - local.get $2 + local.get $1 i32.ne if i32.const 0 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 21542a973f..6755ce6624 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -256,6 +256,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -800,12 +802,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -823,11 +825,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 21248 @@ -835,14 +837,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -852,17 +854,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -879,116 +881,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 21236 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -999,146 +928,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 21236 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1232 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 21236 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 21236 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 21236 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1504 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1504 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4048,29 +4052,29 @@ (func $~lib/number/U8#toString (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4852 - i32.lt_s - if - i32.const 21264 - i32.const 21312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32 + block $__inlined_func$~lib/util/number/utoa32 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4852 + i32.lt_s + if + i32.const 21264 + i32.const 21312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.const 255 i32.and - local.tee $1 + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -4078,57 +4082,56 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3536 - local.set $0 br $__inlined_func$~lib/util/number/utoa32 end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.tee $2 + local.tee $1 i32.const 1 i32.shl i32.const 1 @@ -4136,15 +4139,15 @@ local.tee $0 i32.store local.get $0 - local.get $1 local.get $2 + local.get $1 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 end - local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 @@ -4198,9 +4201,10 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 memory.size @@ -4426,7 +4430,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4457,6 +4461,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index 805e1477e1..93b60f444d 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -635,12 +635,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -658,11 +658,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 19856 @@ -670,14 +670,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -687,17 +687,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -714,116 +714,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 19844 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -834,146 +761,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 19844 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1520 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 19844 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1520 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 19844 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 19844 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1792 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1792 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1719,7 +1721,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1424 - local.set $3 + local.set $0 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -1730,82 +1732,82 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $3 select - local.tee $0 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.get $2 + local.get $3 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.shl call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store loop $while-continue|0 - local.get $0 + local.get $1 i32.const 10000 i32.ge_u if - local.get $0 + local.get $1 i32.const 10000 i32.rem_u local.set $4 - local.get $0 + local.get $1 i32.const 10000 i32.div_u - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $3 + local.get $0 i32.add local.get $4 i32.const 100 @@ -1830,19 +1832,19 @@ br $while-continue|0 end end - local.get $0 + local.get $1 i32.const 100 i32.ge_u if - local.get $1 + local.get $2 i32.const 2 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $3 - i32.add local.get $0 + i32.add + local.get $1 i32.const 100 i32.rem_u i32.const 2 @@ -1851,23 +1853,23 @@ i32.add i32.load i32.store - local.get $0 + local.get $1 i32.const 100 i32.div_u - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 10 i32.ge_u if - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl - local.get $3 - i32.add local.get $0 + i32.add + local.get $1 i32.const 2 i32.shl i32.const 1836 @@ -1875,21 +1877,21 @@ i32.load i32.store else - local.get $1 + local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl - local.get $3 - i32.add local.get $0 + i32.add + local.get $1 i32.const 48 i32.add i32.store16 end - local.get $2 + local.get $3 if - local.get $3 + local.get $0 i32.const 45 i32.store16 end @@ -1899,36 +1901,31 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 3408 i32.store offset=4 - i32.const 3408 - local.set $2 i32.const 1 - local.get $3 + local.get $0 i32.const 3408 i32.eq br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - i32.const 3408 - i32.const 0 - local.get $3 - select + local.get $0 i32.eqz br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $3 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $0 + local.tee $2 i32.const 3404 i32.load i32.const 1 @@ -1936,30 +1933,34 @@ i32.ne br_if $__inlined_func$~lib/string/String.__eq drop - local.get $3 + i32.const 3408 + local.set $3 + local.get $0 + local.tee $1 i32.const 7 i32.and i32.eqz - local.get $0 + local.get $2 + local.tee $0 i32.const 4 i32.ge_u i32.and if loop $do-loop|0 - local.get $3 + local.get $1 i64.load - local.get $2 + local.get $3 i64.load i64.eq if - local.get $3 + local.get $1 i32.const 8 i32.add - local.set $3 - local.get $2 + local.set $1 + local.get $3 i32.const 8 i32.add - local.set $2 + local.set $3 local.get $0 i32.const 4 i32.sub @@ -1973,39 +1974,39 @@ block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 - local.tee $1 + local.tee $2 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 if - local.get $3 + local.get $1 i32.load16_u local.tee $4 - local.get $2 + local.get $3 i32.load16_u local.tee $5 i32.sub - local.set $1 + local.set $2 local.get $4 local.get $5 i32.ne br_if $__inlined_func$~lib/util/string/compareImpl - local.get $3 + local.get $1 i32.const 2 i32.add - local.set $3 - local.get $2 + local.set $1 + local.get $3 i32.const 2 i32.add - local.set $2 + local.set $3 br $while-continue|1 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz end i32.eqz diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index 0312391376..bce4c45c94 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -604,12 +604,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -627,11 +627,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17888 @@ -639,14 +639,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -656,17 +656,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -683,116 +683,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17876 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -803,146 +730,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17876 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17876 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17876 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17876 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1406,6 +1408,7 @@ ) (func $export:resolve-nested/Outer.Inner.evenInner (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -1422,6 +1425,7 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $7 local.tee $6 local.get $0 i32.store @@ -1440,13 +1444,14 @@ local.get $6 local.get $5 i32.store offset=20 - local.get $6 + local.get $7 i32.const 24 i32.add global.set $~lib/memory/__stack_pointer ) (func $export:resolve-nested/Outer.inner (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -1463,6 +1468,7 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $6 local.tee $5 local.get $0 i32.store @@ -1478,13 +1484,14 @@ local.get $5 local.get $4 i32.store offset=16 - local.get $5 + local.get $6 i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) (func $export:resolve-nested/outer (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -1501,6 +1508,7 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $4 local.tee $3 local.get $0 i32.store @@ -1510,7 +1518,7 @@ local.get $3 local.get $2 i32.store offset=8 - local.get $3 + local.get $4 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index c452094e26..2117dcdeab 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -600,12 +600,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -623,11 +623,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17872 @@ -635,14 +635,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -652,17 +652,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -679,116 +679,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17860 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -799,146 +726,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17860 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17860 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17860 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17860 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1028,6 +1030,7 @@ ) (func $~start (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1083,9 +1086,10 @@ call $resolve-new/Foo#constructor local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1307,8 +1311,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index f214cfaec0..f654965331 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -635,12 +635,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -658,11 +658,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 20112 @@ -670,14 +670,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -687,17 +687,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -714,116 +714,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 20100 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -834,146 +761,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 20100 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 20100 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 20100 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 20100 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1996,9 +1998,10 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 3232 i32.store offset=4 local.get $0 @@ -2213,6 +2216,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2221,16 +2225,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 4 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 6 i32.store global.get $~lib/memory/__stack_pointer @@ -2238,9 +2242,8 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 - local.get $1 + local.get $0 i32.load call $~lib/number/I32#toString local.set $0 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 19d10e82ea..9f9969e0f9 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -639,12 +639,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -662,11 +662,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 21040 @@ -674,14 +674,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -691,17 +691,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -718,116 +718,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 21028 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -838,146 +765,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 21028 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 21028 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 21028 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end + i32.const 4 + i32.add + local.tee $0 + i32.const 21028 + i32.ge_u if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1806,8 +1808,8 @@ (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i64) + (local $6 i64) + (local $7 i32) (local $8 i32) (local $9 i64) (local $10 i32) @@ -1831,7 +1833,7 @@ i64.sub local.tee $12 i64.and - local.set $7 + local.set $6 local.get $1 local.get $0 i64.shr_u @@ -1908,7 +1910,7 @@ local.get $5 i32.const 1000000000 i32.div_u - local.set $6 + local.set $7 local.get $5 i32.const 1000000000 i32.rem_u @@ -1918,7 +1920,7 @@ local.get $5 i32.const 100000000 i32.div_u - local.set $6 + local.set $7 local.get $5 i32.const 100000000 i32.rem_u @@ -1928,7 +1930,7 @@ local.get $5 i32.const 10000000 i32.div_u - local.set $6 + local.set $7 local.get $5 i32.const 10000000 i32.rem_u @@ -1938,7 +1940,7 @@ local.get $5 i32.const 1000000 i32.div_u - local.set $6 + local.set $7 local.get $5 i32.const 1000000 i32.rem_u @@ -1948,7 +1950,7 @@ local.get $5 i32.const 100000 i32.div_u - local.set $6 + local.set $7 local.get $5 i32.const 100000 i32.rem_u @@ -1958,7 +1960,7 @@ local.get $5 i32.const 10000 i32.div_u - local.set $6 + local.set $7 local.get $5 i32.const 10000 i32.rem_u @@ -1968,7 +1970,7 @@ local.get $5 i32.const 1000 i32.div_u - local.set $6 + local.set $7 local.get $5 i32.const 1000 i32.rem_u @@ -1978,7 +1980,7 @@ local.get $5 i32.const 100 i32.div_u - local.set $6 + local.set $7 local.get $5 i32.const 100 i32.rem_u @@ -1988,7 +1990,7 @@ local.get $5 i32.const 10 i32.div_u - local.set $6 + local.set $7 local.get $5 i32.const 10 i32.rem_u @@ -1996,16 +1998,16 @@ br $break|1 end local.get $5 - local.set $6 + local.set $7 i32.const 0 local.set $5 br $break|1 end i32.const 0 - local.set $6 + local.set $7 end local.get $4 - local.get $6 + local.get $7 i32.or if local.get $4 @@ -2018,7 +2020,7 @@ i32.shl i32.const 3472 i32.add - local.get $6 + local.get $7 i32.const 65535 i32.and i32.const 48 @@ -2029,7 +2031,7 @@ i32.const 1 i32.sub local.set $2 - local.get $7 + local.get $6 local.get $5 i64.extend_i32_u local.get $10 @@ -2079,11 +2081,11 @@ local.get $0 local.get $1 i64.add - local.tee $7 + local.tee $6 local.get $9 i64.sub i64.gt_u - local.get $7 + local.get $6 local.get $9 i64.lt_u i32.or @@ -2116,7 +2118,7 @@ i64.const 10 i64.mul local.set $3 - local.get $7 + local.get $6 i64.const 10 i64.mul local.tee $0 @@ -2156,7 +2158,7 @@ local.get $0 local.get $12 i64.and - local.tee $7 + local.tee $6 i64.le_u br_if $while-continue|4 end @@ -2164,7 +2166,7 @@ global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $7 + local.get $6 local.set $0 i32.const 0 local.get $2 @@ -2202,12 +2204,12 @@ local.get $0 local.get $11 i64.add - local.tee $7 + local.tee $6 local.get $1 i64.sub i64.gt_u local.get $1 - local.get $7 + local.get $6 i64.gt_u i32.or else @@ -3106,6 +3108,8 @@ (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) local.get $1 i32.eqz if @@ -3124,17 +3128,17 @@ local.get $0 local.get $1 i32.add - local.tee $2 + local.tee $3 i32.const 21 i32.le_s local.get $0 - local.get $2 + local.get $3 i32.le_s i32.and if (result i32) loop $for-loop|0 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -3151,26 +3155,26 @@ br $for-loop|0 end end - local.get $2 + local.get $3 i32.const 1 i32.shl i32.const 3472 i32.add i32.const 3145774 i32.store - local.get $2 + local.get $3 i32.const 2 i32.add else - local.get $2 + local.get $3 i32.const 21 i32.le_s - local.get $2 + local.get $3 i32.const 0 i32.gt_s i32.and if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.shl i32.const 3472 @@ -3192,16 +3196,16 @@ i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 0 i32.le_s - local.get $2 + local.get $3 i32.const -6 i32.gt_s i32.and if (result i32) i32.const 2 - local.get $2 + local.get $3 i32.sub local.tee $2 i32.const 1 @@ -3249,7 +3253,7 @@ i32.const 101 i32.store16 i32.const 3476 - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $0 @@ -3338,19 +3342,19 @@ local.get $1 i32.const 3472 i32.add - local.tee $3 + local.tee $5 i32.const 101 i32.store16 offset=2 - local.get $3 + local.get $5 i32.const 4 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s - local.tee $2 + local.tee $3 if i32.const 0 local.get $1 @@ -3358,7 +3362,6 @@ local.set $1 end local.get $1 - local.get $1 i32.const 100000 i32.lt_u if (result i32) @@ -3404,14 +3407,17 @@ i32.add end end + local.set $4 + local.get $1 + local.get $4 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $5 i32.const 45 i32.const 43 - local.get $2 + local.get $3 select i32.store16 offset=4 local.get $0 @@ -3483,296 +3489,296 @@ (func $~start (local $0 i32) (local $1 i64) - (local $2 i64) + (local $2 i32) (local $3 i64) - (local $4 i32) - (local $5 f64) + (local $4 i64) + (local $5 i64) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4644 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 21028 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/pinSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/toSpace + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/fromSpace + local.get $0 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4644 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 21028 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/pinSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/itcms/toSpace - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - global.set $~lib/rt/itcms/fromSpace - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4644 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 4644 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $0 + i32.store + local.get $2 + i32.const 3232 + i32.store offset=4 + local.get $0 + i32.const 3232 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.store - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 1 + i32.const 3264 + i32.const 5 i32.const 1 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3232 - i32.store offset=4 - local.get $0 - i32.const 3232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 5 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4644 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4644 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const -4 + global.set $~lib/util/number/_K + i32.const 3880 + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 4312 + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $3 + i64.const 4294967295 + i64.and + local.tee $1 + i64.const 31 + i64.shl + local.set $4 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 + i64.const 31 + i64.shl + local.get $1 + i64.const 31 + i64.shl + local.get $1 + i64.const 10 + i64.shl + i64.const 32 + i64.shr_u + i64.add + local.tee $5 + i64.const 32 + i64.shr_u + i64.add + local.get $5 + i64.const 4294967295 + i64.and + local.get $3 + i64.const 10 + i64.shl + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $5 + local.get $3 + i64.const 31 + i64.shl + local.get $4 + i64.const 32 + i64.shr_u + i64.add + local.get $4 + i64.const 4294967295 + i64.and + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $5 + global.get $~lib/util/number/_exp_pow + i32.const 1 + i32.add + local.get $5 + local.get $3 + i64.const 2147483647 + i64.mul + local.get $1 + i64.const 2147483647 + i64.mul + local.get $1 + i64.const 4294966784 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $1 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + i64.const 4294966784 + i64.mul + local.get $1 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + call $~lib/util/number/genDigits + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + i32.const 1 + i32.shl + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 3472 + local.get $0 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $2 + i32.store + local.get $0 + i32.const 4464 + i32.store offset=4 + local.get $2 + i32.const 4464 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.store - i32.const -4 - global.set $~lib/util/number/_K - i32.const 3880 - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 4312 - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $2 - i64.const 4294967295 - i64.and - local.tee $3 - i64.const 31 - i64.shl - local.set $1 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $2 - i64.const 31 - i64.shl - local.get $1 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - i64.const 4294967295 - i64.and - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $2 - i64.const 31 - i64.shl - local.get $3 - i64.const 31 - i64.shl - local.get $3 - i64.const 10 - i64.shl - i64.const 32 - i64.shr_u - i64.add - local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - i64.const 4294967295 - i64.and - local.get $2 - i64.const 10 - i64.shl - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $1 - global.get $~lib/util/number/_exp_pow + i32.const 3264 + i32.const 13 i32.const 1 - i32.add - local.get $1 - local.get $2 - i64.const 2147483647 - i64.mul - local.get $3 - i64.const 2147483647 - i64.mul - local.get $3 - i64.const 4294966784 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $2 - i64.const 4294966784 - i64.mul - local.get $1 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - call $~lib/util/number/genDigits - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - i32.const 1 - i32.shl - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - local.get $4 - i32.const 3472 - local.get $0 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $4 - i32.store - local.get $0 - i32.const 4464 - i32.store offset=4 - local.get $4 - i32.const 4464 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 13 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4496 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 24 i32.const 1 - i32.const 4496 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4560 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 35 i32.const 1 - i32.const 4560 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 35 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4528 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 43 i32.const 1 - i32.const 4528 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 43 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 21056 i32.const 21104 diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 8ae190069c..2aa5bcef67 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -655,12 +655,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -678,11 +678,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 20160 @@ -690,14 +690,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -707,17 +707,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -734,116 +734,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 20156 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -854,146 +781,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 20156 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 20156 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 20156 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 20156 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1967,6 +1969,7 @@ (func $start:resolve-unary (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -2022,9 +2025,10 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 3232 i32.store offset=4 local.get $0 @@ -2268,9 +2272,10 @@ i32.const 3488 i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 3488 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 3488 i32.store offset=4 i32.const 3488 @@ -2477,9 +2482,10 @@ i32.const 3616 i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 3616 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 3616 i32.store offset=4 i32.const 3616 @@ -2521,11 +2527,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-unary/bar local.tee $1 + global.get $resolve-unary/bar + local.tee $2 i32.store - local.get $0 local.get $1 + local.get $2 i32.store offset=12 local.get $0 i32.const 3680 @@ -2550,11 +2557,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-unary/bar local.tee $1 + global.get $resolve-unary/bar + local.tee $2 i32.store - local.get $0 local.get $1 + local.get $2 i32.store offset=12 local.get $0 i32.const 3712 diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index 5cb5d51b6d..a86f10a5ec 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -598,12 +598,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -621,11 +621,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17920 @@ -633,14 +633,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -650,17 +650,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -677,116 +677,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -797,161 +724,236 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17908 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - global.get $rt/finalize/expect - local.get $0 - i32.const 20 - i32.add + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne if i32.const 0 - i32.const 1392 - i32.const 6 - i32.const 3 + i32.const 1120 + i32.const 228 + i32.const 20 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $rt/finalize/ran local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17908 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + global.get $rt/finalize/expect local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end + i32.const 20 + i32.add + i32.ne if i32.const 0 - i32.const 1440 - i32.const 559 + i32.const 1392 + i32.const 6 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $2 - local.get $2 - i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + global.set $rt/finalize/ran + local.get $0 + i32.const 4 + i32.add + local.tee $0 + i32.const 17908 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1259,8 +1261,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index f4a5f7a597..30eceb3bbb 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -638,12 +638,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -661,11 +661,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17952 @@ -673,14 +673,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -690,17 +690,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -717,116 +717,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17940 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -837,146 +764,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17940 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17940 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17940 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17940 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index 9973399dfc..5b9b51a85e 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -168,10 +168,10 @@ local.get $0 call $~lib/rt/itcms/Object#unlink global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $1 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.le_u if (result i32) @@ -179,7 +179,7 @@ else i32.const 1568 i32.load - local.get $1 + local.get $2 i32.lt_u if i32.const 1248 @@ -189,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1572 @@ -197,13 +197,15 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 - local.get $2 + local.get $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $0 - local.get $2 + local.get $1 global.get $~lib/rt/itcms/white i32.eqz i32.const 2 @@ -212,17 +214,17 @@ i32.or i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $0 i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 ) @@ -741,12 +743,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -764,11 +766,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17984 @@ -776,14 +778,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -793,17 +795,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -852,11 +854,11 @@ if local.get $0 global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -925,11 +927,11 @@ local.get $0 i32.ne if + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1071,7 +1073,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 diff --git a/tests/compiler/rt/runtime-minimal-export.optimized.wat b/tests/compiler/rt/runtime-minimal-export.optimized.wat index 36c97bacdc..d65e191f15 100644 --- a/tests/compiler/rt/runtime-minimal-export.optimized.wat +++ b/tests/compiler/rt/runtime-minimal-export.optimized.wat @@ -548,12 +548,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -571,11 +571,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 1488 @@ -583,14 +583,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -600,17 +600,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1211,23 +1211,23 @@ end global.get $~lib/rt/tcms/white i32.eqz - local.set $4 + local.set $3 global.get $~lib/rt/tcms/toSpace - local.tee $3 + local.tee $2 i32.load offset=4 i32.const -4 i32.and local.set $0 loop $while-continue|1 local.get $0 - local.get $3 + local.get $2 i32.ne if local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $4 + local.get $3 i32.ne if i32.const 0 @@ -1301,7 +1301,7 @@ local.get $0 i32.const 4 i32.add - local.tee $0 + local.tee $6 i32.const 1484 i32.ge_u if @@ -1311,20 +1311,20 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $0 + local.get $6 i32.const 4 i32.sub - local.set $6 - local.get $0 + local.set $4 + local.get $6 i32.const 15 i32.and i32.const 1 - local.get $0 + local.get $6 select if (result i32) i32.const 1 else - local.get $6 + local.get $4 i32.load i32.const 1 i32.and @@ -1337,13 +1337,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $6 + local.get $4 + local.get $4 i32.load i32.const 1 i32.or i32.store - local.get $6 + local.get $4 call $~lib/rt/tlsf/insertBlock end end @@ -1357,11 +1357,11 @@ local.get $5 local.get $5 i32.store offset=8 - local.get $3 + local.get $2 global.set $~lib/rt/tcms/fromSpace local.get $5 global.set $~lib/rt/tcms/toSpace - local.get $4 + local.get $3 global.set $~lib/rt/tcms/white ) (func $~lib/rt/__visit_members (param $0 i32) diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 8e81148436..7dcbf7b5d6 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -1516,12 +1516,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -1539,11 +1539,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 24368 @@ -1551,14 +1551,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -1568,17 +1568,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1978,26 +1978,26 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 end local.get $1 i32.load16_u offset=6 - local.tee $2 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 end local.get $1 i32.load16_u offset=4 - local.tee $3 + local.tee $2 i32.const 128 i32.ge_u br_if $break|0 end local.get $1 i32.load16_u offset=2 - local.tee $5 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 @@ -2012,19 +2012,19 @@ i32.const 1144 i32.store i32.const 1140 - local.get $4 + local.get $5 i32.store i32.const 1144 - local.get $5 + local.get $4 i32.const 8 i32.shl local.get $6 i32.or - local.get $3 + local.get $2 i32.const 16 i32.shl i32.or - local.get $2 + local.get $3 i32.const 24 i32.shl i32.or @@ -2050,28 +2050,27 @@ return end local.get $1 - local.get $1 local.tee $2 - local.tee $3 i32.const 20 i32.sub i32.load offset=16 + local.get $2 i32.add - local.set $5 + local.set $4 i32.const 0 - local.set $1 + local.set $3 loop $while-continue|0 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.lt_u if - local.get $3 + local.get $2 i32.load16_u local.tee $6 i32.const 128 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 1 i32.add else @@ -2079,7 +2078,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 2 i32.add else @@ -2088,41 +2087,41 @@ i32.and i32.const 55296 i32.eq - local.get $5 - local.get $3 + local.get $4 + local.get $2 i32.const 2 i32.add i32.gt_u i32.and if - local.get $3 + local.get $2 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $1 - i32.const 4 - i32.add - local.set $1 local.get $3 i32.const 4 i32.add local.set $3 + local.get $2 + i32.const 4 + i32.add + local.set $2 br $while-continue|0 end end - local.get $1 + local.get $3 i32.const 3 i32.add end end - local.set $1 - local.get $3 + local.set $3 + local.get $2 i32.const 2 i32.add - local.set $3 + local.set $2 br $while-continue|0 end end @@ -2132,18 +2131,18 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $1 + local.get $3 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $3 + local.set $2 i32.const 3 global.set $~argumentsLength + local.get $1 + local.get $5 local.get $2 - local.get $4 - local.get $3 call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $1 + local.get $3 i32.ne if i32.const 0 @@ -2154,10 +2153,10 @@ unreachable end i32.const 1136 - local.get $3 + local.get $2 i32.store i32.const 1140 - local.get $1 + local.get $3 i32.store local.get $0 i32.const 1136 @@ -2165,7 +2164,7 @@ i32.const 1144 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2344,6 +2343,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -2377,116 +2378,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 24356 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -2497,102 +2425,177 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 24356 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 4992 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 24356 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 4992 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free + i32.const 24356 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3133,7 +3136,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -3149,7 +3152,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 24 @@ -3159,18 +3162,18 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $7 i32.ne if - local.get $4 + local.get $5 i32.load offset=16 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.load local.tee $8 i32.store offset=8 @@ -3178,7 +3181,7 @@ local.get $8 i32.store local.get $2 - local.get $4 + local.get $5 i64.load offset=8 i64.store offset=8 local.get $2 @@ -3188,7 +3191,7 @@ i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $8 i32.load @@ -3201,20 +3204,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 24 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end @@ -3379,7 +3382,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 6000 - local.set $2 + local.set $1 br $__inlined_func$~lib/util/number/utoa64 end local.get $0 @@ -3389,7 +3392,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $1 local.tee $2 i32.const 100000 i32.lt_u @@ -3441,10 +3443,10 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 local.get $1 + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut else @@ -3499,25 +3501,25 @@ i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $while-continue|0 local.get $0 i64.const 100000000 i64.ge_u if - local.get $1 + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add local.get $0 local.get $0 @@ -3551,13 +3553,13 @@ i64.shl i64.or i64.store - local.get $1 + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add local.get $3 i32.const 10000 @@ -3585,10 +3587,10 @@ br $while-continue|0 end end - local.get $2 + local.get $1 local.get $0 i32.wrap_i64 - local.get $1 + local.get $2 call $~lib/util/number/utoa32_dec_lut end global.get $~lib/memory/__stack_pointer @@ -3596,7 +3598,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $2 + local.get $1 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -3752,9 +3754,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 4672 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3786,9 +3789,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 4752 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3820,9 +3824,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 4848 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4173,11 +4178,12 @@ i32.ne br_if $__inlined_func$~lib/string/String.__eq drop + local.get $1 + local.set $3 local.get $2 i32.const 7 i32.and local.get $1 - local.tee $3 i32.const 7 i32.and i32.or diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index 37ff5828c0..c1c74f0155 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -820,6 +820,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -1364,12 +1366,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -1387,11 +1389,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 23296 @@ -1399,14 +1401,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -1416,17 +1418,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1493,116 +1495,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 23284 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1613,102 +1542,177 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 23284 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 23284 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free + i32.const 23284 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4074,6 +4078,7 @@ i32.shl local.tee $2 local.get $0 + local.tee $1 i32.const 20 i32.sub i32.load offset=16 @@ -4083,7 +4088,7 @@ i32.shl local.tee $3 i32.add - local.tee $1 + local.tee $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -4091,23 +4096,23 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 - local.set $1 + local.set $0 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 4768 local.get $2 call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $2 i32.add - local.get $0 + local.get $1 local.get $3 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer @@ -4115,7 +4120,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $1 + local.get $0 ) (func $~lib/process/writeString (param $0 i32) (local $1 i32) @@ -4135,26 +4140,26 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 + local.tee $4 br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 end local.get $0 i32.load16_u offset=6 - local.tee $3 + local.tee $2 i32.const 128 i32.ge_u br_if $break|0 end local.get $0 i32.load16_u offset=4 - local.tee $4 + local.tee $1 i32.const 128 i32.ge_u br_if $break|0 end local.get $0 i32.load16_u offset=2 - local.tee $1 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -4169,19 +4174,19 @@ i32.const 6680 i32.store i32.const 6676 - local.get $2 + local.get $4 i32.store i32.const 6680 - local.get $1 + local.get $3 i32.const 8 i32.shl local.get $5 i32.or - local.get $4 + local.get $1 i32.const 16 i32.shl i32.or - local.get $3 + local.get $2 i32.const 24 i32.shl i32.or @@ -4207,28 +4212,28 @@ return end local.get $0 + local.set $1 local.get $0 - local.tee $1 - local.tee $3 i32.const 20 i32.sub i32.load offset=16 + local.get $0 i32.add - local.set $4 + local.set $3 i32.const 0 - local.set $0 + local.set $2 loop $while-continue|0 + local.get $1 local.get $3 - local.get $4 i32.lt_u if - local.get $3 + local.get $1 i32.load16_u local.tee $5 i32.const 128 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 1 i32.add else @@ -4236,7 +4241,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 2 i32.add else @@ -4245,41 +4250,41 @@ i32.and i32.const 55296 i32.eq - local.get $4 local.get $3 + local.get $1 i32.const 2 i32.add i32.gt_u i32.and if - local.get $3 + local.get $1 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 - local.get $3 + local.set $2 + local.get $1 i32.const 4 i32.add - local.set $3 + local.set $1 br $while-continue|0 end end - local.get $0 + local.get $2 i32.const 3 i32.add end end - local.set $0 - local.get $3 + local.set $2 + local.get $1 i32.const 2 i32.add - local.set $3 + local.set $1 br $while-continue|0 end end @@ -4289,18 +4294,18 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $0 + local.get $2 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $3 + local.set $1 i32.const 3 global.set $~argumentsLength + local.get $0 + local.get $4 local.get $1 - local.get $2 - local.get $3 call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $0 + local.get $2 i32.ne if i32.const 0 @@ -4311,10 +4316,10 @@ unreachable end i32.const 6672 - local.get $3 + local.get $1 i32.store i32.const 6676 - local.get $0 + local.get $2 i32.store i32.const 1 i32.const 6672 @@ -4322,7 +4327,7 @@ i32.const 6680 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $3 + local.get $1 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -4467,9 +4472,10 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 memory.size @@ -4736,13 +4742,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 local.tee $3 - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1680 @@ -4832,33 +4838,34 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 local.tee $3 + local.tee $4 i32.const 0 i32.store i32.const 0 local.get $0 + local.tee $1 i32.load offset=8 - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 0 i32.gt_s select local.set $2 - local.get $3 + local.get $4 block $__inlined_func$~lib/typedarray/Uint8Array#constructor (result i32) - local.get $4 + local.get $0 local.get $2 i32.sub - local.tee $3 + local.tee $0 i32.const 0 - local.get $3 + local.get $0 i32.const 0 i32.gt_s select local.tee $4 local.set $5 - local.get $1 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4868,14 +4875,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.tee $3 @@ -4889,23 +4896,23 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store end - local.get $1 + local.get $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 local.get $5 @@ -4925,19 +4932,19 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $1 + local.get $0 local.get $6 i32.store local.get $6 if - local.get $1 + local.get $0 local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $0 local.get $6 i32.store offset=4 - local.get $1 + local.get $0 local.get $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -4945,23 +4952,23 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 br $__inlined_func$~lib/typedarray/Uint8Array#constructor end br $folding-inner1 end - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 local.get $2 - local.get $0 + local.get $1 i32.load offset=4 i32.add local.get $4 @@ -4970,7 +4977,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 return end i32.const 23312 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 7177cdaa28..fb6eb2fc4d 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -1502,12 +1502,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -1525,11 +1525,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 23792 @@ -1537,14 +1537,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -1554,17 +1554,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1964,26 +1964,26 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 + local.tee $4 br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 end local.get $0 i32.load16_u offset=6 - local.tee $3 + local.tee $2 i32.const 128 i32.ge_u br_if $break|0 end local.get $0 i32.load16_u offset=4 - local.tee $4 + local.tee $1 i32.const 128 i32.ge_u br_if $break|0 end local.get $0 i32.load16_u offset=2 - local.tee $1 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -1998,19 +1998,19 @@ i32.const 1096 i32.store i32.const 1092 - local.get $2 + local.get $4 i32.store i32.const 1096 - local.get $1 + local.get $3 i32.const 8 i32.shl local.get $5 i32.or - local.get $4 + local.get $1 i32.const 16 i32.shl i32.or - local.get $3 + local.get $2 i32.const 24 i32.shl i32.or @@ -2036,28 +2036,28 @@ return end local.get $0 + local.set $1 local.get $0 - local.tee $1 - local.tee $3 i32.const 20 i32.sub i32.load offset=16 + local.get $0 i32.add - local.set $4 + local.set $3 i32.const 0 - local.set $0 + local.set $2 loop $while-continue|0 + local.get $1 local.get $3 - local.get $4 i32.lt_u if - local.get $3 + local.get $1 i32.load16_u local.tee $5 i32.const 128 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 1 i32.add else @@ -2065,7 +2065,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 2 i32.add else @@ -2074,41 +2074,41 @@ i32.and i32.const 55296 i32.eq - local.get $4 local.get $3 + local.get $1 i32.const 2 i32.add i32.gt_u i32.and if - local.get $3 + local.get $1 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 - local.get $3 + local.set $2 + local.get $1 i32.const 4 i32.add - local.set $3 + local.set $1 br $while-continue|0 end end - local.get $0 + local.get $2 i32.const 3 i32.add end end - local.set $0 - local.get $3 + local.set $2 + local.get $1 i32.const 2 i32.add - local.set $3 + local.set $1 br $while-continue|0 end end @@ -2118,18 +2118,18 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $0 + local.get $2 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $3 + local.set $1 i32.const 3 global.set $~argumentsLength + local.get $0 + local.get $4 local.get $1 - local.get $2 - local.get $3 call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $0 + local.get $2 i32.ne if i32.const 0 @@ -2140,10 +2140,10 @@ unreachable end i32.const 1088 - local.get $3 + local.get $1 i32.store i32.const 1092 - local.get $0 + local.get $2 i32.store i32.const 1 i32.const 1088 @@ -2151,7 +2151,7 @@ i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $3 + local.get $1 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2360,6 +2360,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -2393,116 +2395,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 23788 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -2513,102 +2442,177 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 23788 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 4656 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 23788 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 4656 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free + i32.const 23788 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4719,21 +4723,20 @@ i32.const 1092 i32.load i32.add - local.tee $5 - local.set $1 + local.set $5 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $1 + local.get $5 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $2 + local.tee $7 local.get $0 - local.get $2 + local.get $7 i32.add call $~lib/bindings/wasi_snapshot_preview1/environ_get local.tee $0 @@ -4749,7 +4752,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4758,94 +4761,95 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $2 i32.store - local.get $6 + local.get $2 if - local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $1 i32.const 3 i32.store offset=4 - local.get $0 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $2 i32.store offset=8 - local.get $6 + local.get $2 if - local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $1 i32.const 4 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $1 i32.store loop $for-loop|0 - local.get $3 local.get $4 - i32.lt_u + local.get $6 + i32.gt_u if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.const 2 i32.shl - local.get $2 + local.get $7 i32.add i32.load - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $5 i32.add - local.get $2 + local.get $7 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $6 + local.tee $3 i32.store offset=4 - block $__inlined_func$~lib/string/String#indexOf (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store offset=8 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 5168 + i32.store offset=8 + i32.const 0 + local.set $0 + block $__inlined_func$~lib/string/String#indexOf i32.const 5164 i32.load i32.const 1 i32.shr_u - local.tee $7 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf - drop i32.const -1 - local.get $6 + local.set $0 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -4854,90 +4858,83 @@ local.tee $8 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf - drop i32.const 0 + local.set $0 local.get $8 - local.get $8 - i32.const 0 - i32.gt_s - select - local.set $1 - local.get $8 - local.get $7 + local.get $2 i32.sub local.set $8 loop $for-loop|02 - local.get $1 + local.get $0 local.get $8 i32.le_s if - local.get $1 - local.get $6 - local.get $1 + local.get $3 + local.get $0 i32.const 5168 - local.get $7 + local.get $2 call $~lib/util/string/compareImpl i32.eqz br_if $__inlined_func$~lib/string/String#indexOf - drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|02 end end i32.const -1 + local.set $0 end - local.tee $1 + local.get $0 i32.const -1 i32.xor if - local.get $6 + local.get $3 i32.const 0 - local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.store offset=8 - local.get $6 - local.get $1 + local.get $3 + local.get $0 i32.const 1 i32.add i32.const 2147483647 call $~lib/string/String#substring - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 local.get $0 - local.get $7 + i32.store offset=12 local.get $1 + local.get $2 + local.get $0 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set else global.get $~lib/memory/__stack_pointer i32.const 5200 i32.store offset=12 - local.get $0 - local.get $6 + local.get $1 + local.get $3 i32.const 5200 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end - local.get $2 + local.get $7 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 return end i32.const 23808 @@ -4949,8 +4946,8 @@ ) (func $start:std-wasi/process (local $0 i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5055,14 +5052,13 @@ end i32.const 1088 i32.load - local.tee $5 + local.tee $6 i32.const 2 i32.shl - local.tee $6 + local.tee $7 i32.const 1092 i32.load i32.add - local.tee $7 local.set $8 global.get $~lib/rt/tlsf/ROOT i32.eqz @@ -5074,16 +5070,16 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $8 - local.get $6 - local.get $8 + local.tee $5 + local.get $5 + local.get $7 i32.add call $~lib/bindings/wasi_snapshot_preview1/args_get - local.tee $6 + local.tee $7 i32.const 65535 i32.and if - local.get $6 + local.get $7 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 71 @@ -5092,49 +5088,49 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $6 + local.tee $7 i32.store loop $for-loop|0 - local.get $1 - local.get $5 + local.get $2 + local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.shl - local.get $8 + local.get $5 i32.add i32.load local.tee $9 - local.get $7 + local.get $8 local.get $9 i32.add - local.get $8 + local.get $5 i32.sub call $~lib/string/String.UTF8.decodeUnsafe local.tee $9 i32.store offset=4 - local.get $6 - local.get $1 + local.get $7 + local.get $2 local.get $9 call $~lib/array/Array<~lib/string/String>#__set - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $8 + local.get $5 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 global.set $~lib/process/process.argv global.get $~lib/process/process.argv global.set $std-wasi/process/argv @@ -5145,13 +5141,13 @@ call $~lib/console/console.log global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|01 - local.get $1 + local.get $2 local.get $3 i32.gt_s if @@ -5180,11 +5176,11 @@ global.get $~lib/process/process.env global.set $std-wasi/process/env global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 global.get $std-wasi/process/env local.tee $3 i32.store - local.get $1 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5193,21 +5189,21 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store local.get $3 i32.load offset=8 local.set $5 - local.get $1 + local.get $2 local.get $3 i32.load offset=16 - local.tee $3 + local.tee $2 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $6 + local.tee $3 i32.store loop $for-loop|02 - local.get $3 + local.get $2 local.get $4 i32.gt_s if @@ -5216,26 +5212,25 @@ i32.mul local.get $5 i32.add - local.tee $7 + local.tee $6 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.load - local.tee $7 + local.tee $6 i32.store offset=4 + local.get $3 + local.get $0 local.get $6 - local.get $1 - local.get $7 call $~lib/array/Array<~lib/string/String>#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end local.get $4 i32.const 1 @@ -5244,18 +5239,18 @@ br $for-loop|02 end end - local.get $6 + local.get $3 local.get $0 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 + local.get $3 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $3 global.set $std-wasi/process/envKeys global.get $~lib/memory/__stack_pointer i32.const 5232 @@ -5266,14 +5261,14 @@ local.set $0 global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/envKeys - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -5357,7 +5352,7 @@ i64.load i64.const 1000000 i64.div_u - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5370,7 +5365,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa64 - local.get $2 + local.get $1 i64.eqz if global.get $~lib/memory/__stack_pointer @@ -5378,155 +5373,154 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 5696 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 - local.get $2 + local.get $1 i64.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $0 - select local.tee $2 + select + local.tee $1 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.wrap_i64 local.tee $3 - local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.get $0 + local.get $2 i32.add local.tee $4 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 local.get $3 local.get $4 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $1 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $1 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $2 + local.get $1 i64.const 10000000000 i64.ge_u i32.add else - local.get $2 + local.get $1 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $2 + local.get $1 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $2 + local.get $1 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $1 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $2 + local.get $1 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $2 + local.get $1 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.get $0 + local.get $2 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store + local.get $0 local.get $1 - local.get $2 local.get $3 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $2 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -5536,9 +5530,9 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 7280 @@ -5563,7 +5557,7 @@ end i32.const 1088 i64.load - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5576,7 +5570,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/number/utoa64 - local.get $2 + local.get $1 i64.eqz if global.get $~lib/memory/__stack_pointer @@ -5584,58 +5578,57 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 5696 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/number/utoa64 end - local.get $2 + local.get $1 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.wrap_i64 - local.tee $0 - local.tee $1 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -5646,74 +5639,74 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 local.get $0 + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $1 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $1 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $2 + local.get $1 i64.const 10000000000 i64.ge_u i32.add else - local.get $2 + local.get $1 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $2 + local.get $1 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $2 + local.get $1 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $1 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $2 + local.get $1 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $2 + local.get $1 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.tee $0 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store + local.get $0 local.get $1 local.get $2 - local.get $0 call $~lib/util/number/utoa64_dec_lut end global.get $~lib/memory/__stack_pointer @@ -5722,9 +5715,9 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 7328 @@ -5743,12 +5736,12 @@ i32.const 20 i32.sub i32.load offset=16 - local.set $1 + local.set $2 i32.const 1088 local.get $0 i32.store i32.const 1092 - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 1088 @@ -6239,10 +6232,9 @@ i32.gt_s select local.tee $2 - local.tee $4 + local.get $2 local.get $3 - local.get $4 - i32.lt_s + i32.gt_s select i32.const 1 i32.shl diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 5318c29a7e..55df33e412 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -277,6 +277,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -821,12 +823,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -844,11 +846,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18256 @@ -856,14 +858,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -873,17 +875,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -900,116 +902,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18252 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1020,146 +949,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18252 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1536 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18252 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18252 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18252 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1744 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1744 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index b4442e9acb..576fc82894 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -890,6 +890,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -1434,12 +1436,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -1457,11 +1459,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 32048 @@ -1469,14 +1471,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -1486,17 +1488,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1563,116 +1565,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 32036 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1683,102 +1612,177 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 32036 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1216 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 32036 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free + i32.const 32036 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8073,46 +8077,44 @@ i32.shl local.get $0 i32.add - local.tee $5 - i32.load local.tee $6 + i32.load + local.tee $5 i32.store local.get $3 - local.get $5 + local.get $6 i32.load offset=4 - local.tee $3 + local.tee $6 i32.store offset=4 local.get $6 - local.set $5 + local.set $3 i32.const 2 global.set $~argumentsLength + local.get $5 local.get $6 - local.get $3 local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.le_s - if (result i32) - local.get $3 - local.set $5 + if + local.get $5 + local.set $3 local.get $6 - else - local.get $3 + local.set $5 end - local.set $6 local.get $7 i32.const 1 i32.sub - local.set $3 + local.set $6 loop $while-continue|1 local.get $1 - local.get $3 + local.get $6 i32.le_s if block $while-break|1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.const 2 i32.shl local.get $0 @@ -8130,22 +8132,22 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $3 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add local.get $8 i32.store offset=8 - local.get $3 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $while-continue|1 end end end - local.get $3 + local.get $6 i32.const 2 i32.shl local.get $0 @@ -8154,12 +8156,12 @@ i32.store offset=8 loop $while-continue|2 local.get $1 - local.get $3 + local.get $6 i32.le_s if block $while-break|2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.const 2 i32.shl local.get $0 @@ -8170,34 +8172,34 @@ i32.const 2 global.set $~argumentsLength local.get $5 - local.get $6 + local.get $3 local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.le_s br_if $while-break|2 - local.get $3 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add local.get $5 i32.store offset=4 - local.get $3 + local.get $6 i32.const 1 i32.sub - local.set $3 + local.set $6 br $while-continue|2 end end end - local.get $3 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add - local.get $6 + local.get $3 i32.store offset=4 local.get $7 i32.const 2 @@ -8233,27 +8235,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $2 - local.get $3 + local.tee $6 i32.add local.set $7 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if local.get $4 - local.get $6 + local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 2 i32.shl local.tee $8 @@ -8267,28 +8269,28 @@ end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $7 - local.get $2 + local.get $6 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -8299,7 +8301,7 @@ if global.get $~lib/memory/__stack_pointer local.tee $7 - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 @@ -8308,7 +8310,7 @@ local.tee $8 i32.store local.get $7 - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 @@ -8333,10 +8335,10 @@ i32.add local.get $8 i32.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 2 @@ -8345,10 +8347,10 @@ i32.add local.get $7 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -8368,11 +8370,11 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i64) + (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) + (local $12 i64) (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -8531,37 +8533,37 @@ local.tee $7 i32.const 1 i32.shl - local.set $9 + local.set $8 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end - local.get $7 global.get $~lib/rt/tlsf/ROOT - local.get $9 + local.get $8 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $11 + local.tee $9 + local.get $7 i32.add local.set $10 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl - local.get $11 + local.get $9 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end @@ -8577,38 +8579,38 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $9 + local.set $11 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $12 + local.tee $8 local.get $2 call $~lib/util/sort/extendRunRight local.tee $1 i32.const 1 i32.add - local.tee $4 + local.tee $5 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $12 + local.get $8 i32.const 31 - local.get $12 + local.get $8 i32.const 31 i32.lt_s select local.tee $1 - local.get $4 + local.get $5 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 local.get $1 - local.get $12 + local.get $8 i32.lt_s if local.get $0 @@ -8616,10 +8618,10 @@ i32.const 1 i32.add local.tee $6 - local.get $12 + local.get $8 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $4 + local.tee $5 local.get $6 i32.sub i32.const 1 @@ -8630,16 +8632,16 @@ if local.get $0 local.get $6 - local.get $12 + local.get $8 local.get $6 i32.const 31 i32.add - local.tee $4 - local.get $4 - local.get $12 + local.tee $5 + local.get $5 + local.get $8 i32.gt_s select - local.tee $4 + local.tee $5 local.get $7 local.get $2 call $~lib/util/sort/insertionSort @@ -8650,13 +8652,13 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $8 i32.const 1 i32.add i64.extend_i32_u - local.tee $8 + local.tee $12 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -8664,21 +8666,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $12 i64.div_u i64.xor i32.wrap_i64 i32.clz local.set $7 loop $for-loop|3 - local.get $5 + local.get $4 local.get $7 i32.gt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $11 + local.get $9 i32.add i32.load local.tee $13 @@ -8688,7 +8690,7 @@ local.get $0 local.get $13 local.get $10 - local.get $5 + local.get $4 i32.const 2 i32.shl local.tee $3 @@ -8697,53 +8699,53 @@ i32.const 1 i32.add local.get $1 - local.get $9 + local.get $11 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $11 + local.get $9 i32.add i32.const -1 i32.store local.get $13 local.set $3 end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|3 end end - local.get $11 + local.get $9 local.get $7 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $10 i32.add local.get $1 i32.store local.get $6 local.set $3 - local.get $4 + local.get $5 local.set $1 local.get $7 - local.set $5 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $11 + local.get $9 i32.add i32.load local.tee $1 @@ -8752,7 +8754,7 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 @@ -8760,22 +8762,22 @@ i32.load i32.const 1 i32.add - local.get $12 - local.get $9 + local.get $8 + local.get $11 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end - local.get $9 - call $~lib/rt/tlsf/__free local.get $11 call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -9112,6 +9114,7 @@ i32.store block $__inlined_func$~lib/string/String#concat local.get $0 + local.tee $2 i32.const 20 i32.sub i32.load offset=16 @@ -9130,7 +9133,7 @@ i32.shl local.tee $4 i32.add - local.tee $2 + local.tee $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -9138,20 +9141,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $2 + local.set $0 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 local.get $3 call $~lib/memory/memory.copy - local.get $2 + local.get $0 local.get $3 i32.add local.get $1 @@ -9162,7 +9165,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $2 + local.get $0 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -9480,6 +9483,7 @@ br $for-loop|0 end end + local.get $3 local.get $2 i32.const 1 i32.shl @@ -9495,8 +9499,7 @@ local.get $2 i32.add local.tee $1 - local.get $3 - i32.lt_s + i32.gt_s if local.get $0 local.get $1 @@ -9705,6 +9708,7 @@ br $for-loop|0 end end + local.get $3 local.get $2 i32.const 1 i32.shl @@ -9720,8 +9724,7 @@ local.get $2 i32.add local.tee $1 - local.get $3 - i32.lt_s + i32.gt_s if local.get $0 local.get $1 @@ -11090,6 +11093,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $0 i32.load offset=4 local.set $2 @@ -11163,7 +11167,7 @@ i32.load i32.const 1 i32.shr_u - local.set $4 + local.set $5 loop $for-loop|0 local.get $1 local.get $3 @@ -11176,22 +11180,22 @@ local.get $2 i32.add i32.load - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 + local.get $4 i32.const 13072 i32.store offset=8 - local.get $5 local.get $0 i32.const 13072 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 end - local.get $4 + local.get $5 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -11220,9 +11224,9 @@ if global.get $~lib/memory/__stack_pointer local.tee $1 + local.get $1 i32.const 13072 i32.store offset=8 - local.get $1 local.get $0 i32.const 13072 call $~lib/string/String.__concat @@ -11509,7 +11513,6 @@ if local.get $1 i32.wrap_i64 - local.tee $3 local.tee $2 i32.const 100000 i32.lt_u @@ -11556,10 +11559,10 @@ i32.add end end - local.set $2 + local.set $3 local.get $0 - local.get $3 local.get $2 + local.get $3 call $~lib/util/number/utoa32_dec_lut else local.get $0 @@ -11614,10 +11617,10 @@ i32.add end end - local.tee $2 + local.tee $3 call $~lib/util/number/utoa64_dec_lut end - local.get $2 + local.get $3 ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) @@ -11697,47 +11700,46 @@ local.get $7 i32.wrap_i64 local.tee $2 - local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -12169,7 +12171,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $1 + local.tee $0 select local.tee $2 i64.const 4294967295 @@ -12179,62 +12181,61 @@ local.get $2 i32.wrap_i64 local.tee $3 - local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.get $1 + local.get $0 i32.add local.tee $4 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 local.get $3 local.get $4 call $~lib/util/number/utoa32_dec_lut @@ -12290,23 +12291,23 @@ i32.add end end - local.get $1 + local.get $0 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 local.get $2 local.get $3 call $~lib/util/number/utoa64_dec_lut end - local.get $1 + local.get $0 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -12314,7 +12315,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 end local.set $0 global.get $~lib/memory/__stack_pointer @@ -12624,6 +12625,7 @@ br $for-loop|0 end end + local.get $3 local.get $2 i32.const 1 i32.shl @@ -12637,8 +12639,7 @@ local.get $2 i32.add local.tee $1 - local.get $3 - i32.lt_s + i32.gt_s if local.get $0 local.get $1 @@ -13651,8 +13652,6 @@ i32.const 0 i32.store block $__inlined_func$std/array/isSorted (result i32) - i32.const 1 - local.set $2 local.get $0 i32.load offset=4 local.get $0 @@ -13662,12 +13661,14 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + i32.const 1 + local.set $2 local.get $0 i32.load offset=12 - local.set $5 + local.set $3 loop $for-loop|0 local.get $2 - local.get $5 + local.get $3 i32.lt_s if local.get $0 @@ -13675,16 +13676,16 @@ i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $3 + local.set $4 local.get $0 local.get $2 call $~lib/array/Array#__get - local.set $4 + local.set $5 i32.const 2 global.set $~argumentsLength i32.const 0 - local.get $3 local.get $4 + local.get $5 local.get $1 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -13829,19 +13830,19 @@ i32.shl local.get $0 i32.add - local.tee $5 - i32.load offset=4 local.tee $7 + i32.load offset=4 + local.tee $5 i32.store local.get $6 - local.get $5 + local.get $7 i32.load - local.tee $5 + local.tee $6 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $5 + local.get $6 local.get $3 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -13972,9 +13973,10 @@ local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer + local.tee $2 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13982,23 +13984,21 @@ i32.const 15652 i32.lt_s br_if $folding-inner0 - local.get $0 - local.set $2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store i32.const 1 - local.set $0 - local.get $2 + local.set $2 + local.get $0 i32.load offset=12 - local.set $4 + local.set $5 loop $for-loop|0 - local.get $0 - local.get $4 + local.get $2 + local.get $5 i32.lt_s if - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.sub call $~lib/array/Array#__get @@ -14006,17 +14006,17 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store - local.get $2 local.get $0 + local.get $2 call $~lib/array/Array#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $3 - local.get $5 + local.get $4 local.get $1 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -14030,10 +14030,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/array/Array> end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end @@ -14386,11 +14386,11 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 f64) - (local $11 i64) - (local $12 f32) + (local $8 f64) + (local $9 i64) + (local $10 f32) + (local $11 i32) + (local $12 i32) (local $13 i32) (local $14 i32) (local $15 i32) @@ -14456,70 +14456,70 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i64.const 0 i64.store offset=16 - local.get $0 + local.get $1 i64.const 0 i64.store offset=24 - local.get $0 + local.get $1 i64.const 0 i64.store offset=32 - local.get $0 + local.get $1 i64.const 0 i64.store offset=40 - local.get $0 + local.get $1 i64.const 0 i64.store offset=48 - local.get $0 + local.get $1 i64.const 0 i64.store offset=56 - local.get $0 + local.get $1 i64.const 0 i64.store offset=64 - local.get $0 + local.get $1 i64.const 0 i64.store offset=72 - local.get $0 + local.get $1 i64.const 0 i64.store offset=80 - local.get $0 + local.get $1 i64.const 0 i64.store offset=88 - local.get $0 + local.get $1 i64.const 0 i64.store offset=96 - local.get $0 + local.get $1 i64.const 0 i64.store offset=104 - local.get $0 + local.get $1 i64.const 0 i64.store offset=112 - local.get $0 + local.get $1 i64.const 0 i64.store offset=120 - local.get $0 + local.get $1 i64.const 0 i64.store offset=128 - local.get $0 + local.get $1 i64.const 0 i64.store offset=136 - local.get $0 + local.get $1 i64.const 0 i64.store offset=144 - local.get $0 + local.get $1 i64.const 0 i64.store offset=152 - local.get $0 + local.get $1 i64.const 0 i64.store offset=160 - local.get $0 + local.get $1 i32.const 0 i32.store offset=168 memory.size @@ -14559,9 +14559,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -14572,17 +14572,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $64 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14593,23 +14593,23 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $2 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store end - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -14618,43 +14618,44 @@ call $~lib/rt/itcms/__new local.tee $65 i32.store offset=4 - local.get $2 + local.get $1 local.get $65 i32.store local.get $65 if - local.get $2 + local.get $1 local.get $65 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $1 local.get $65 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $64 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 1664 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -14670,9 +14671,9 @@ i32.const 6 i32.const 1696 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i32.const 1 i32.const 3 @@ -14683,12 +14684,12 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 call $std/array/isArraysEqual i32.eqz if @@ -14699,7 +14700,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 i32.const 0 i32.const 2147483647 @@ -14710,12 +14711,12 @@ i32.const 6 i32.const 1760 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 call $std/array/isArraysEqual i32.eqz if @@ -14726,7 +14727,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.const 0 i32.const -3 @@ -14737,12 +14738,12 @@ i32.const 6 i32.const 1792 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 call $std/array/isArraysEqual i32.eqz if @@ -14753,7 +14754,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 i32.const -2 i32.const 2147483647 @@ -14764,12 +14765,12 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 call $std/array/isArraysEqual i32.eqz if @@ -14780,7 +14781,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 i32.const 1 i32.const 0 @@ -14791,12 +14792,12 @@ i32.const 6 i32.const 1856 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 call $std/array/isArraysEqual i32.eqz if @@ -14813,20 +14814,20 @@ i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.tee $0 + local.tee $64 i32.store offset=12 - local.get $0 + local.get $64 i32.load offset=4 local.set $65 i32.const 1 - local.get $0 + local.get $64 i32.load offset=12 local.tee $66 local.get $66 i32.const 1 i32.gt_s select - local.set $2 + local.set $1 i32.const 3 local.get $66 local.get $66 @@ -14835,21 +14836,21 @@ select local.set $66 loop $for-loop|0 - local.get $2 + local.get $1 local.get $66 i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl local.get $65 i32.add i32.const 1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end @@ -14858,12 +14859,12 @@ i32.const 7 i32.const 1936 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 - local.get $0 - local.get $2 + local.get $64 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -14874,35 +14875,34 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.tee $2 + local.get $64 i32.load offset=4 local.set $65 i32.const 0 - local.get $2 + local.get $64 i32.load offset=12 local.tee $66 local.get $66 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 loop $for-loop|01 - local.get $0 + local.get $1 local.get $66 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl local.get $65 i32.add i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|01 end end @@ -14911,12 +14911,12 @@ i32.const 7 i32.const 1984 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $2 - local.get $0 + local.get $64 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -14927,18 +14927,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.load offset=4 local.set $65 i32.const 0 - local.get $2 + local.get $64 i32.load offset=12 local.tee $66 local.get $66 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $66 i32.const 3 i32.sub @@ -14950,21 +14950,21 @@ select local.set $66 loop $for-loop|03 - local.get $0 + local.get $1 local.get $66 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl local.get $65 i32.add i32.const 1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|03 end end @@ -14973,12 +14973,12 @@ i32.const 7 i32.const 2032 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $2 - local.get $0 + local.get $64 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -14989,37 +14989,37 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.load offset=4 local.set $65 - local.get $2 + local.get $64 i32.load offset=12 local.tee $66 i32.const 2 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 loop $for-loop|05 - local.get $0 + local.get $1 local.get $66 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl local.get $65 i32.add i32.const 2 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|05 end end @@ -15028,12 +15028,12 @@ i32.const 7 i32.const 2080 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $2 - local.get $0 + local.get $64 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -15044,18 +15044,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.load offset=4 local.set $65 i32.const 1 - local.get $2 + local.get $64 i32.load offset=12 local.tee $66 local.get $66 i32.const 1 i32.gt_s select - local.set $0 + local.set $1 i32.const 0 local.get $66 local.get $66 @@ -15064,21 +15064,21 @@ select local.set $66 loop $for-loop|07 - local.get $0 + local.get $1 local.get $66 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl local.get $65 i32.add i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|07 end end @@ -15087,12 +15087,12 @@ i32.const 7 i32.const 2128 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $2 - local.get $0 + local.get $64 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -15105,9 +15105,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -15119,9 +15119,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15135,17 +15135,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 42 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -15160,9 +15160,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 1 i32.ne @@ -15176,9 +15176,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15192,9 +15192,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -15208,9 +15208,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -15222,9 +15222,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15238,17 +15238,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 1 i32.ne @@ -15262,9 +15262,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15278,9 +15278,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15295,17 +15295,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 44 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -15319,9 +15319,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15335,9 +15335,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15352,9 +15352,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15369,17 +15369,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 45 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -15393,9 +15393,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15409,9 +15409,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15426,9 +15426,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15443,9 +15443,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15459,40 +15459,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $64 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.load offset=4 i32.store offset=16 - local.get $2 + local.get $64 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $2 + local.get $64 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.store offset=16 - local.get $2 + local.get $64 i32.const 0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 + local.get $64 i32.const 0 i32.store offset=12 - local.get $2 + local.get $64 i32.load offset=12 if i32.const 0 @@ -15508,9 +15508,9 @@ i32.const 3 i32.const 2224 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -15523,7 +15523,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -15536,7 +15536,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -15549,7 +15549,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -15565,17 +15565,17 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $0 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $64 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $0 + local.get $64 + local.get $1 call $~lib/array/Array#concat - local.tee $2 + local.tee $64 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr @@ -15609,7 +15609,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.load offset=12 i32.const 3 i32.ne @@ -15630,7 +15630,7 @@ global.get $~lib/memory/__stack_pointer local.get $65 i32.store offset=8 - local.get $2 + local.get $64 local.get $65 call $~lib/array/Array#concat drop @@ -15650,7 +15650,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15663,7 +15663,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15676,7 +15676,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15689,24 +15689,24 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 46 call $~lib/array/Array#push drop - local.get $0 + local.get $1 i32.const 47 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $64 global.get $std/array/arr local.tee $65 i32.store - local.get $2 + local.get $64 local.get $65 - local.get $0 + local.get $1 call $~lib/array/Array#concat - local.tee $2 + local.tee $64 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr @@ -15724,7 +15724,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -15736,7 +15736,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.load offset=12 i32.const 5 i32.ne @@ -15748,7 +15748,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15761,7 +15761,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15774,7 +15774,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15787,7 +15787,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -15800,7 +15800,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -15813,10 +15813,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $64 call $~lib/array/Array#pop drop - local.get $2 + local.get $64 i32.load offset=12 i32.const 4 i32.ne @@ -15834,9 +15834,9 @@ i32.const 3 i32.const 2304 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -15847,17 +15847,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $64 global.get $std/array/arr local.tee $65 i32.store offset=8 - local.get $2 - local.get $0 + local.get $64 + local.get $1 local.get $65 call $~lib/array/Array#concat - local.tee $2 + local.tee $64 i32.store offset=16 - local.get $2 + local.get $64 i32.load offset=12 i32.const 3 i32.ne @@ -15869,7 +15869,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -15885,28 +15885,28 @@ i32.const 3 i32.const 2336 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2384 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15924,28 +15924,28 @@ i32.const 3 i32.const 2432 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2480 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15963,28 +15963,28 @@ i32.const 3 i32.const 2528 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2576 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16002,28 +16002,28 @@ i32.const 3 i32.const 2624 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2672 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16041,28 +16041,28 @@ i32.const 3 i32.const 2720 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2768 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16080,28 +16080,28 @@ i32.const 3 i32.const 2816 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2864 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16119,28 +16119,28 @@ i32.const 3 i32.const 2912 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2960 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16158,28 +16158,28 @@ i32.const 3 i32.const 3008 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3056 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16197,28 +16197,28 @@ i32.const 3 i32.const 3104 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3152 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16236,28 +16236,28 @@ i32.const 3 i32.const 3200 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3248 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16275,28 +16275,28 @@ i32.const 3 i32.const 3296 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3344 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16314,28 +16314,28 @@ i32.const 3 i32.const 3392 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const -4 i32.const -3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3440 call $~lib/rt/__newArray - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store offset=8 - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16349,17 +16349,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 42 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -16373,9 +16373,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16389,9 +16389,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16406,9 +16406,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16423,9 +16423,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16440,9 +16440,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -16457,17 +16457,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 41 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 5 i32.ne @@ -16481,9 +16481,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16497,9 +16497,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -16514,9 +16514,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -16531,9 +16531,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -16548,9 +16548,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -16565,9 +16565,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -16582,11 +16582,11 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 - local.tee $2 + local.tee $64 i32.const 0 i32.le_s if @@ -16597,7 +16597,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 local.tee $65 i32.load @@ -16605,10 +16605,10 @@ local.get $65 i32.const 4 i32.add - local.get $2 + local.get $64 i32.const 1 i32.sub - local.tee $2 + local.tee $64 i32.const 2 i32.shl local.tee $67 @@ -16618,8 +16618,8 @@ i32.add i32.const 0 i32.store - local.get $0 - local.get $2 + local.get $1 + local.get $64 i32.store offset=12 global.set $std/array/i global.get $std/array/i @@ -16635,9 +16635,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -16651,9 +16651,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16667,9 +16667,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16684,9 +16684,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16701,9 +16701,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16718,9 +16718,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -16735,9 +16735,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -16753,9 +16753,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -16769,9 +16769,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16785,9 +16785,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16802,9 +16802,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16819,9 +16819,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16840,14 +16840,14 @@ i32.const 3 i32.const 3488 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $2 + local.tee $64 i32.store offset=16 i32.const 3 i32.const 2 @@ -16858,7 +16858,7 @@ global.get $~lib/memory/__stack_pointer local.get $65 i32.store offset=8 - local.get $2 + local.get $64 local.get $65 i32.const 0 call $std/array/isArraysEqual @@ -16872,11 +16872,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $2 + local.tee $64 i32.store offset=16 i32.const 2 i32.const 2 @@ -16887,7 +16887,7 @@ global.get $~lib/memory/__stack_pointer local.get $65 i32.store offset=8 - local.get $2 + local.get $64 local.get $65 i32.const 0 call $std/array/isArraysEqual @@ -16901,11 +16901,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $2 + local.tee $64 i32.store offset=16 i32.const 4 i32.const 2 @@ -16916,7 +16916,7 @@ global.get $~lib/memory/__stack_pointer local.get $65 i32.store offset=8 - local.get $2 + local.get $64 local.get $65 i32.const 0 call $std/array/isArraysEqual @@ -16930,14 +16930,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 0 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $2 + local.tee $64 i32.store offset=16 - local.get $2 - local.get $0 + local.get $64 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16950,11 +16950,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const -2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $2 + local.tee $64 i32.store offset=16 i32.const 2 i32.const 2 @@ -16965,7 +16965,7 @@ global.get $~lib/memory/__stack_pointer local.get $65 i32.store offset=8 - local.get $2 + local.get $64 local.get $65 i32.const 0 call $std/array/isArraysEqual @@ -16979,11 +16979,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $2 + local.tee $64 i32.store offset=16 i32.const 2 i32.const 2 @@ -16994,7 +16994,7 @@ global.get $~lib/memory/__stack_pointer local.get $65 i32.store offset=8 - local.get $2 + local.get $64 local.get $65 i32.const 0 call $std/array/isArraysEqual @@ -17008,11 +17008,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $2 + local.tee $64 i32.store offset=16 i32.const 2 i32.const 2 @@ -17023,7 +17023,7 @@ global.get $~lib/memory/__stack_pointer local.get $65 i32.store offset=8 - local.get $2 + local.get $64 local.get $65 i32.const 0 call $std/array/isArraysEqual @@ -17036,15 +17036,15 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $2 + local.set $64 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $64 i32.store - local.get $2 + local.get $64 i32.load offset=12 if i32.const 0 @@ -17054,15 +17054,15 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 10 i32.const 2147483647 call $~lib/array/Array#slice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -17074,45 +17074,45 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.set $2 - local.get $0 + local.set $64 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.gt_u if - local.get $0 + local.get $1 i32.const 1 i32.shr_u local.set $65 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $while-continue|0 - local.get $1 + local.get $53 local.get $65 i32.lt_u if - local.get $1 + local.get $53 i32.const 2 i32.shl - local.get $2 + local.get $64 i32.add local.tee $66 i32.load local.set $67 local.get $66 - local.get $0 local.get $1 + local.get $53 i32.sub i32.const 2 i32.shl - local.get $2 + local.get $64 i32.add local.tee $66 i32.load @@ -17120,19 +17120,19 @@ local.get $66 local.get $67 i32.store - local.get $1 + local.get $53 i32.const 1 i32.add - local.set $1 + local.set $53 br $while-continue|0 end end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -17146,9 +17146,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17162,9 +17162,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -17179,9 +17179,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17196,9 +17196,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -17213,17 +17213,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 44 call $~lib/array/Array#push drop @@ -17233,33 +17233,33 @@ i32.const 6 i32.const 3744 call $~lib/rt/__newArray - local.set $1 + local.set $53 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $53 i32.store - local.get $1 + local.get $53 i32.load offset=4 - local.get $1 + local.get $53 i32.load offset=12 call $~lib/util/bytes/REVERSE - local.get $1 + local.get $53 i32.store offset=16 i32.const 0 - local.set $2 - local.get $1 + local.set $1 + local.get $53 i32.load offset=12 - local.set $0 + local.set $64 loop $for-loop|08 - local.get $0 - local.get $2 - i32.gt_s + local.get $1 + local.get $64 + i32.lt_s if + local.get $53 local.get $1 - local.get $2 call $~lib/array/Array#__get - local.get $1 + local.get $53 i32.load offset=12 - local.get $2 + local.get $1 i32.sub i32.const 1 i32.sub @@ -17272,10 +17272,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|08 end end @@ -17285,33 +17285,33 @@ i32.const 6 i32.const 3776 call $~lib/rt/__newArray - local.set $1 + local.set $53 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $53 i32.store - local.get $1 + local.get $53 i32.load offset=4 - local.get $1 + local.get $53 i32.load offset=12 call $~lib/util/bytes/REVERSE - local.get $1 + local.get $53 i32.store offset=4 i32.const 0 - local.set $2 - local.get $1 + local.set $1 + local.get $53 i32.load offset=12 - local.set $0 + local.set $64 loop $for-loop|1 - local.get $0 - local.get $2 - i32.gt_s + local.get $1 + local.get $64 + i32.lt_s if + local.get $53 local.get $1 - local.get $2 call $~lib/array/Array#__get - local.get $1 + local.get $53 i32.load offset=12 - local.get $2 + local.get $1 i32.sub i32.const 1 i32.sub @@ -17324,10 +17324,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|1 end end @@ -17337,33 +17337,33 @@ i32.const 6 i32.const 3808 call $~lib/rt/__newArray - local.set $1 + local.set $53 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $53 i32.store - local.get $1 + local.get $53 i32.load offset=4 - local.get $1 + local.get $53 i32.load offset=12 call $~lib/util/bytes/REVERSE - local.get $1 + local.get $53 i32.store offset=12 i32.const 0 - local.set $2 - local.get $1 + local.set $1 + local.get $53 i32.load offset=12 - local.set $0 + local.set $64 loop $for-loop|2 - local.get $0 - local.get $2 - i32.gt_s + local.get $1 + local.get $64 + i32.lt_s if + local.get $53 local.get $1 - local.get $2 call $~lib/array/Array#__get - local.get $1 + local.get $53 i32.load offset=12 - local.get $2 + local.get $1 i32.sub i32.const 1 i32.sub @@ -17376,10 +17376,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|2 end end @@ -17389,30 +17389,30 @@ i32.const 9 i32.const 3856 call $~lib/rt/__newArray - local.set $1 + local.set $53 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $53 i32.store - local.get $1 + local.get $53 call $~lib/array/Array#reverse - local.tee $0 + local.tee $53 i32.store offset=20 i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 local.set $1 + local.get $53 + i32.load offset=12 + local.set $64 loop $for-loop|3 local.get $1 - local.get $2 - i32.gt_s + local.get $64 + i32.lt_s if - local.get $0 - local.get $2 + local.get $53 + local.get $1 call $~lib/array/Array#__get - local.get $0 + local.get $53 i32.load offset=12 - local.get $2 + local.get $1 i32.sub i32.const 1 i32.sub @@ -17425,10 +17425,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|3 end end @@ -17438,30 +17438,30 @@ i32.const 9 i32.const 3904 call $~lib/rt/__newArray - local.set $1 + local.set $53 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $53 i32.store - local.get $1 + local.get $53 call $~lib/array/Array#reverse - local.tee $0 + local.tee $53 i32.store offset=24 i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 local.set $1 + local.get $53 + i32.load offset=12 + local.set $64 loop $for-loop|4 local.get $1 - local.get $2 - i32.gt_s + local.get $64 + i32.lt_s if - local.get $0 - local.get $2 + local.get $53 + local.get $1 call $~lib/array/Array#__get - local.get $0 + local.get $53 i32.load offset=12 - local.get $2 + local.get $1 i32.sub i32.const 1 i32.sub @@ -17474,10 +17474,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|4 end end @@ -17487,30 +17487,30 @@ i32.const 9 i32.const 3952 call $~lib/rt/__newArray - local.set $1 + local.set $53 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $53 i32.store - local.get $1 + local.get $53 call $~lib/array/Array#reverse - local.tee $0 + local.tee $53 i32.store offset=28 i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 local.set $1 + local.get $53 + i32.load offset=12 + local.set $64 loop $for-loop|5 local.get $1 - local.get $2 - i32.gt_s + local.get $64 + i32.lt_s if - local.get $0 - local.get $2 + local.get $53 + local.get $1 call $~lib/array/Array#__get - local.get $0 + local.get $53 i32.load offset=12 - local.get $2 + local.get $1 i32.sub i32.const 1 i32.sub @@ -17523,58 +17523,58 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|5 end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $53 i32.store i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $53 i32.load offset=12 - local.tee $2 + local.tee $64 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $64 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $53 i32.load offset=4 - local.set $1 + local.set $53 loop $while-continue|013 local.get $2 - local.get $3 - i32.gt_s + local.get $64 + i32.lt_s if - local.get $3 - local.tee $0 + local.get $2 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $53 i32.add i32.load i32.const 44 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $2 br $while-continue|013 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i if @@ -17587,49 +17587,49 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf39 - local.get $1 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $53 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $53 select br_if $__inlined_func$~lib/array/Array#indexOf39 - local.get $1 + local.get $2 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|041 - local.get $2 - local.get $9 - i32.gt_s + local.get $0 + local.get $53 + i32.lt_s if - local.get $9 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 42 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf39 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $0 br $while-continue|041 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 2 @@ -17644,12 +17644,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf42 - local.get $1 + local.get $0 i32.load offset=12 local.tee $2 i32.const 0 @@ -17658,35 +17658,35 @@ local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf42 - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|044 local.get $2 - local.get $8 + local.get $7 i32.gt_s if - local.get $8 - local.tee $0 + local.get $7 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 45 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf42 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $8 + local.set $7 br $while-continue|044 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -17701,35 +17701,35 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $2 i32.store i32.const 100 - local.set $2 + local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf45 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $7 i32.const 100 i32.le_s i32.const 1 - local.get $3 + local.get $7 select br_if $__inlined_func$~lib/array/Array#indexOf45 - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|047 - local.get $2 - local.get $3 + local.get $0 + local.get $7 i32.lt_s if - local.get $2 + local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add i32.load i32.const 43 @@ -17738,7 +17738,7 @@ local.get $1 i32.const 1 i32.add - local.set $2 + local.set $0 br $while-continue|047 end end @@ -17763,36 +17763,36 @@ local.tee $0 i32.store i32.const -1 - local.set $2 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf48 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $1 + local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf48 - local.get $1 + local.get $2 i32.const 100 i32.sub - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select - local.set $2 + local.set $1 local.get $0 i32.load offset=4 local.set $0 loop $while-continue|050 local.get $1 local.get $2 - i32.gt_s + i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl local.get $0 @@ -17801,17 +17801,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf48 - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $while-continue|050 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -17829,36 +17829,36 @@ local.tee $0 i32.store i32.const -1 - local.set $2 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf51 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const -2 i32.le_s i32.const 1 - local.get $1 + local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf51 - local.get $1 + local.get $2 i32.const 2 i32.sub - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select - local.set $2 + local.set $1 local.get $0 i32.load offset=4 local.set $0 loop $while-continue|053 local.get $1 local.get $2 - i32.gt_s + i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl local.get $0 @@ -17867,17 +17867,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf51 - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $while-continue|053 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 3 @@ -17895,36 +17895,36 @@ local.tee $0 i32.store i32.const -1 - local.set $2 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf54 local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const -4 i32.le_s i32.const 1 - local.get $1 + local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf54 - local.get $1 + local.get $2 i32.const 4 i32.sub - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select - local.set $2 + local.set $1 local.get $0 i32.load offset=4 local.set $0 loop $while-continue|056 local.get $1 local.get $2 - i32.gt_s + i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl local.get $0 @@ -17933,17 +17933,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf54 - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $while-continue|056 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -17958,12 +17958,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf57 - local.get $1 + local.get $0 i32.load offset=12 local.tee $2 i32.const 0 @@ -17972,35 +17972,35 @@ local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf57 - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|059 local.get $2 - local.get $7 + local.get $6 i32.gt_s if - local.get $7 - local.tee $0 + local.get $6 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf57 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $7 + local.set $6 br $while-continue|059 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -18015,35 +18015,35 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $2 i32.store i32.const 1 - local.set $2 + local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf60 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $6 i32.const 1 i32.le_s i32.const 1 - local.get $3 + local.get $6 select br_if $__inlined_func$~lib/array/Array#indexOf60 - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|062 - local.get $2 - local.get $3 + local.get $0 + local.get $6 i32.lt_s if - local.get $2 + local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add i32.load i32.const 43 @@ -18052,7 +18052,7 @@ local.get $1 i32.const 1 i32.add - local.set $2 + local.set $0 br $while-continue|062 end end @@ -18074,35 +18074,35 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $2 i32.store i32.const 2 - local.set $2 + local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf63 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $6 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $6 select br_if $__inlined_func$~lib/array/Array#indexOf63 - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|065 - local.get $2 - local.get $3 + local.get $0 + local.get $6 i32.lt_s if - local.get $2 + local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add i32.load i32.const 43 @@ -18111,7 +18111,7 @@ local.get $1 i32.const 1 i32.add - local.set $2 + local.set $0 br $while-continue|065 end end @@ -18157,10 +18157,10 @@ local.set $0 loop $while-continue|067 local.get $2 - local.get $6 + local.get $5 i32.gt_s if - local.get $6 + local.get $5 local.tee $1 i32.const 2 i32.shl @@ -18173,7 +18173,7 @@ local.get $1 i32.const 1 i32.add - local.set $6 + local.set $5 br $while-continue|067 end end @@ -18217,10 +18217,10 @@ local.set $0 loop $while-continue|069 local.get $2 - local.get $5 + local.get $4 i32.gt_s if - local.get $5 + local.get $4 local.tee $1 i32.const 3 i32.shl @@ -18233,7 +18233,7 @@ local.get $1 i32.const 1 i32.add - local.set $5 + local.set $4 br $while-continue|069 end end @@ -18257,37 +18257,37 @@ i32.const 3 i32.const 4064 call $~lib/rt/__newArray - local.tee $2 + local.tee $4 i32.store offset=24 i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load offset=12 - local.tee $0 - local.set $1 + local.tee $1 + local.set $2 i32.const -1 - local.set $3 + local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf - local.get $0 + local.get $1 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $0 local.get $1 + local.get $2 i32.add - local.get $0 + local.get $1 i32.const 1 i32.sub + local.get $2 local.get $1 - local.get $0 - local.get $1 + local.get $2 i32.le_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 loop $while-continue|01 @@ -18296,7 +18296,6 @@ i32.ge_s if local.get $0 - local.tee $3 i32.const 2 i32.shl local.get $1 @@ -18305,7 +18304,7 @@ i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $3 + local.get $0 i32.const 1 i32.sub local.set $0 @@ -18313,9 +18312,9 @@ end end i32.const -1 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.const 3 i32.ne if @@ -18328,33 +18327,33 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load offset=12 - local.tee $0 - local.set $1 + local.tee $1 + local.set $2 i32.const -1 - local.set $3 + local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf6 - local.get $0 + local.get $1 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf6 - local.get $0 local.get $1 + local.get $2 i32.add - local.get $0 + local.get $1 i32.const 1 i32.sub + local.get $2 local.get $1 - local.get $0 - local.get $1 + local.get $2 i32.le_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 loop $while-continue|07 @@ -18363,7 +18362,6 @@ i32.ge_s if local.get $0 - local.tee $3 i32.const 2 i32.shl local.get $1 @@ -18372,7 +18370,7 @@ i32.const 7 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf6 - local.get $3 + local.get $0 i32.const 1 i32.sub local.set $0 @@ -18380,9 +18378,9 @@ end end i32.const -1 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.const -1 i32.ne if @@ -18394,51 +18392,51 @@ unreachable end i32.const -1 - local.set $1 + local.set $2 block $__inlined_func$~lib/array/Array#lastIndexOf8 - local.get $2 - local.tee $0 + local.get $4 i32.load offset=12 - local.tee $2 + local.tee $0 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf8 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $1 loop $while-continue|071 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $2 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf8 - local.get $1 + local.get $2 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|071 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 3 i32.ne if @@ -18450,50 +18448,51 @@ unreachable end i32.const -1 - local.set $1 + local.set $2 block $__inlined_func$~lib/array/Array#lastIndexOf72 - local.get $0 + local.get $4 i32.load offset=12 - local.tee $2 + local.tee $0 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf72 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $1 loop $while-continue|074 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $2 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf72 - local.get $1 + local.get $2 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|074 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1552 @@ -18503,46 +18502,45 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf75 - local.get $0 - local.tee $2 + local.get $4 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf75 - local.get $0 + local.get $1 i32.const 2 i32.sub - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $4 + i32.load offset=4 + local.set $1 loop $while-continue|077 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf75 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|077 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1552 @@ -18554,7 +18552,7 @@ i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf78 - local.get $2 + local.get $4 i32.load offset=12 local.tee $1 i32.eqz @@ -18562,19 +18560,20 @@ local.get $1 i32.const 1 i32.sub - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 + local.get $4 + i32.load offset=4 + local.set $2 loop $while-continue|080 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 2 @@ -18583,7 +18582,7 @@ local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|080 end end @@ -18606,29 +18605,29 @@ local.tee $2 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf9 local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf9 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|010 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -18637,17 +18636,17 @@ i32.const 44 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf9 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|010 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -18663,29 +18662,29 @@ local.tee $2 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf12 local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf12 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|014 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -18694,17 +18693,17 @@ i32.const 42 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf12 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -18720,29 +18719,29 @@ local.tee $2 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf16 local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf16 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|017 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -18751,17 +18750,17 @@ i32.const 45 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf16 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.ge_s if @@ -18777,29 +18776,29 @@ local.tee $2 i32.store i32.const 100 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf19 local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf19 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|020 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -18808,17 +18807,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf19 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.ge_s if @@ -18831,59 +18830,58 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf22 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf22 - local.get $3 + local.get $2 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $2 - local.get $1 - i32.load offset=4 local.set $1 + local.get $0 + i32.load offset=4 + local.set $0 loop $while-continue|023 + local.get $1 local.get $2 - local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf22 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $while-continue|023 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -18896,59 +18894,58 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf25 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const -2 i32.le_s i32.const 1 - local.get $3 + local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf25 - local.get $3 + local.get $2 i32.const 2 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $2 - local.get $1 - i32.load offset=4 local.set $1 + local.get $0 + i32.load offset=4 + local.set $0 loop $while-continue|026 + local.get $1 local.get $2 - local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf25 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $while-continue|026 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -18961,59 +18958,58 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf28 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const -4 i32.le_s i32.const 1 - local.get $3 + local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf28 - local.get $3 + local.get $2 i32.const 4 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $2 - local.get $1 - i32.load offset=4 local.set $1 + local.get $0 + i32.load offset=4 + local.set $0 loop $while-continue|029 + local.get $1 local.get $2 - local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf28 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $while-continue|029 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -19029,29 +19025,29 @@ local.tee $2 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf31 local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf31 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|032 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -19060,17 +19056,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf31 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|032 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -19086,29 +19082,29 @@ local.tee $2 i32.store i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf34 local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 1 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf34 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|035 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -19117,17 +19113,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf34 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|035 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -19143,29 +19139,29 @@ local.tee $2 i32.store i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf37 local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf37 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|038 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -19174,17 +19170,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf37 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|038 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -19221,29 +19217,29 @@ local.set $0 loop $while-continue|082 local.get $1 - local.get $27 + local.get $25 i32.gt_s if i32.const 1 - local.get $27 + local.get $25 i32.const 2 i32.shl local.get $0 i32.add f32.load - local.tee $12 + local.tee $10 f32.const nan:0x400000 f32.eq - local.get $12 - local.get $12 + local.get $10 + local.get $10 f32.ne i32.or br_if $__inlined_func$~lib/array/Array#includes drop - local.get $27 + local.get $25 i32.const 1 i32.add - local.set $27 + local.set $25 br $while-continue|082 end end @@ -19284,29 +19280,29 @@ local.set $0 loop $while-continue|084 local.get $1 - local.get $26 + local.get $24 i32.gt_s if i32.const 1 - local.get $26 + local.get $24 i32.const 3 i32.shl local.get $0 i32.add f64.load - local.tee $10 + local.tee $8 f64.const nan:0x8000000000000 f64.eq - local.get $10 - local.get $10 + local.get $8 + local.get $8 f64.ne i32.or br_if $__inlined_func$~lib/array/Array#includes drop - local.get $26 + local.get $24 i32.const 1 i32.add - local.set $26 + local.set $24 br $while-continue|084 end end @@ -20457,15 +20453,15 @@ i32.const 0 local.get $1 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $4 + local.get $4 i32.const 0 i32.gt_s select local.set $5 local.get $2 i32.const 1 - local.get $3 + local.get $4 local.get $5 i32.sub local.tee $2 @@ -20495,25 +20491,25 @@ i32.const 2 i32.shl i32.add - local.tee $8 + local.tee $24 local.get $2 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $4 local.get $2 local.get $5 i32.add local.tee $5 i32.ne if - local.get $8 + local.get $24 local.get $5 i32.const 2 i32.shl local.get $7 i32.add - local.get $3 + local.get $4 local.get $5 i32.sub i32.const 2 @@ -20521,7 +20517,7 @@ call $~lib/memory/memory.copy end local.get $1 - local.get $3 + local.get $4 local.get $2 i32.sub i32.store offset=12 @@ -20734,35 +20730,35 @@ local.get $2 i32.lt_s select - local.get $59 + local.get $60 i32.gt_s if local.get $1 i32.load offset=4 - local.get $59 + local.get $60 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $59 + local.get $60 local.get $1 i32.const 6176 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex95 - local.get $59 + local.get $60 i32.const 1 i32.add - local.set $59 + local.set $60 br $for-loop|097 end end i32.const -1 - local.set $59 + local.set $60 end - local.get $59 + local.get $60 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -21104,48 +21100,48 @@ i32.const 3 i32.const 6336 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 6384 i32.store offset=8 - local.get $2 + local.get $1 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex loop $for-loop|0118 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $2 i32.const 6384 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0118 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i if @@ -21159,43 +21155,43 @@ global.get $~lib/memory/__stack_pointer i32.const 6416 i32.store offset=8 - local.get $2 + local.get $1 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex120 loop $for-loop|0122 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $2 i32.const 6416 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex120 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0122 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -21211,43 +21207,43 @@ global.get $~lib/memory/__stack_pointer i32.const 6448 i32.store offset=8 - local.get $2 + local.get $1 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex124 loop $for-loop|0126 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $2 i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex124 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0126 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21263,43 +21259,44 @@ global.get $~lib/memory/__stack_pointer i32.const 6480 i32.store offset=8 - local.get $2 + local.get $1 + local.tee $0 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex128 loop $for-loop|0130 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - i32.load offset=4 local.get $0 + i32.load offset=4 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $1 local.get $0 - local.get $2 i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex128 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0130 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21333,12 +21330,12 @@ local.get $2 i32.lt_s select - local.get $54 + local.get $52 i32.gt_s if local.get $1 i32.load offset=4 - local.get $54 + local.get $52 i32.const 2 i32.shl i32.add @@ -21348,7 +21345,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $54 + local.get $52 local.get $1 i32.const 6512 i32.load @@ -21356,10 +21353,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $54 + local.get $52 i32.const 1 i32.add - local.set $54 + local.set $52 br $for-loop|0133 end end @@ -21395,12 +21392,12 @@ local.get $2 i32.lt_s select - local.get $53 + local.get $51 i32.gt_s if local.get $1 i32.load offset=4 - local.get $53 + local.get $51 i32.const 2 i32.shl i32.add @@ -21410,7 +21407,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $53 + local.get $51 local.get $1 i32.const 6544 i32.load @@ -21418,10 +21415,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every135 drop - local.get $53 + local.get $51 i32.const 1 i32.add - local.set $53 + local.set $51 br $for-loop|0137 end end @@ -21456,12 +21453,12 @@ local.get $2 i32.lt_s select - local.get $52 + local.get $50 i32.gt_s if local.get $1 i32.load offset=4 - local.get $52 + local.get $50 i32.const 2 i32.shl i32.add @@ -21471,7 +21468,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $52 + local.get $50 local.get $1 i32.const 6576 i32.load @@ -21479,10 +21476,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every139 drop - local.get $52 + local.get $50 i32.const 1 i32.add - local.set $52 + local.set $50 br $for-loop|0141 end end @@ -21534,12 +21531,12 @@ local.get $2 i32.lt_s select - local.get $51 + local.get $49 i32.gt_s if local.get $1 i32.load offset=4 - local.get $51 + local.get $49 i32.const 2 i32.shl i32.add @@ -21549,7 +21546,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $51 + local.get $49 local.get $1 i32.const 6608 i32.load @@ -21557,10 +21554,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every144 drop - local.get $51 + local.get $49 i32.const 1 i32.add - local.set $51 + local.set $49 br $for-loop|0146 end end @@ -21622,12 +21619,12 @@ local.get $2 i32.lt_s select - local.get $50 + local.get $48 i32.gt_s if local.get $0 i32.load offset=4 - local.get $50 + local.get $48 i32.const 2 i32.shl i32.add @@ -21637,7 +21634,7 @@ global.set $~argumentsLength i32.const 0 local.get $2 - local.get $50 + local.get $48 local.get $0 i32.const 6640 i32.load @@ -21645,10 +21642,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every148 drop - local.get $50 + local.get $48 i32.const 1 i32.add - local.set $50 + local.set $48 br $for-loop|0150 end end @@ -21715,12 +21712,12 @@ local.get $2 i32.lt_s select - local.get $49 + local.get $47 i32.gt_s if local.get $0 i32.load offset=4 - local.get $49 + local.get $47 i32.const 2 i32.shl i32.add @@ -21730,17 +21727,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $49 + local.get $47 local.get $0 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $49 + local.get $47 i32.const 1 i32.add - local.set $49 + local.set $47 br $for-loop|0154 end end @@ -21768,142 +21765,6 @@ i32.load offset=12 local.set $0 loop $for-loop|0158 - local.get $0 - local.get $1 - i32.load offset=12 - local.tee $2 - local.get $0 - local.get $2 - i32.lt_s - select - local.get $48 - i32.gt_s - if - local.get $1 - i32.load offset=4 - local.get $48 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $2 - local.get $48 - local.get $1 - i32.const 6704 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some156 - drop - local.get $48 - i32.const 1 - i32.add - local.set $48 - br $for-loop|0158 - end - end - i32.const 0 - end - if - i32.const 0 - i32.const 1552 - i32.const 649 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - block $__inlined_func$~lib/array/Array#some160 (result i32) - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr - local.tee $1 - i32.store - local.get $0 - i32.const 6736 - i32.store offset=8 - local.get $1 - i32.load offset=12 - local.set $0 - loop $for-loop|0162 - local.get $0 - local.get $1 - i32.load offset=12 - local.tee $2 - local.get $0 - local.get $2 - i32.lt_s - select - local.get $47 - i32.gt_s - if - local.get $1 - i32.load offset=4 - local.get $47 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $2 - local.get $47 - local.get $1 - i32.const 6736 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some160 - drop - local.get $47 - i32.const 1 - i32.add - local.set $47 - br $for-loop|0162 - end - end - i32.const 0 - end - if - i32.const 0 - i32.const 1552 - i32.const 657 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 658 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - block $__inlined_func$~lib/array/Array#some165 (result i32) - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr - local.tee $1 - i32.store - local.get $0 - i32.const 6768 - i32.store offset=8 - local.get $1 - i32.load offset=12 - local.set $0 - loop $for-loop|0167 local.get $0 local.get $1 i32.load offset=12 @@ -21929,15 +21790,151 @@ local.get $2 local.get $46 local.get $1 - i32.const 6768 + i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some165 + br_if $__inlined_func$~lib/array/Array#some156 drop local.get $46 i32.const 1 i32.add local.set $46 + br $for-loop|0158 + end + end + i32.const 0 + end + if + i32.const 0 + i32.const 1552 + i32.const 649 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#some160 (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6736 + i32.store offset=8 + local.get $1 + i32.load offset=12 + local.set $0 + loop $for-loop|0162 + local.get $0 + local.get $1 + i32.load offset=12 + local.tee $2 + local.get $0 + local.get $2 + i32.lt_s + select + local.get $45 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $45 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $2 + local.get $45 + local.get $1 + i32.const 6736 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#some160 + drop + local.get $45 + i32.const 1 + i32.add + local.set $45 + br $for-loop|0162 + end + end + i32.const 0 + end + if + i32.const 0 + i32.const 1552 + i32.const 657 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 658 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/array/Array#some165 (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6768 + i32.store offset=8 + local.get $1 + i32.load offset=12 + local.set $0 + loop $for-loop|0167 + local.get $0 + local.get $1 + i32.load offset=12 + local.tee $2 + local.get $0 + local.get $2 + i32.lt_s + select + local.get $44 + i32.gt_s + if + local.get $1 + i32.load offset=4 + local.get $44 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $2 + local.get $44 + local.get $1 + i32.const 6768 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $__inlined_func$~lib/array/Array#some165 + drop + local.get $44 + i32.const 1 + i32.add + local.set $44 br $for-loop|0167 end end @@ -22000,12 +21997,12 @@ local.get $2 i32.lt_s select - local.get $45 + local.get $43 i32.gt_s if local.get $0 i32.load offset=4 - local.get $45 + local.get $43 i32.const 2 i32.shl i32.add @@ -22015,17 +22012,17 @@ global.set $~argumentsLength i32.const 1 local.get $2 - local.get $45 + local.get $43 local.get $0 i32.const 6800 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some169 drop - local.get $45 + local.get $43 i32.const 1 i32.add - local.set $45 + local.set $43 br $for-loop|0171 end end @@ -22092,27 +22089,27 @@ local.get $2 i32.lt_s select - local.get $44 + local.get $42 i32.gt_s if local.get $0 i32.load offset=4 - local.get $44 + local.get $42 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $44 + local.get $42 local.get $0 i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $44 + local.get $42 i32.const 1 i32.add - local.set $44 + local.set $42 br $for-loop|0175 end end @@ -22149,27 +22146,27 @@ local.get $2 i32.lt_s select - local.get $43 + local.get $41 i32.gt_s if local.get $1 i32.load offset=4 - local.get $43 + local.get $41 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $43 + local.get $41 local.get $1 i32.const 6864 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $43 + local.get $41 i32.const 1 i32.add - local.set $43 + local.set $41 br $for-loop|0179 end end @@ -22222,27 +22219,27 @@ local.get $2 i32.lt_s select - local.get $42 + local.get $40 i32.gt_s if local.get $1 i32.load offset=4 - local.get $42 + local.get $40 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $42 + local.get $40 local.get $1 i32.const 6896 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $42 + local.get $40 i32.const 1 i32.add - local.set $42 + local.set $40 br $for-loop|0184 end end @@ -22306,27 +22303,27 @@ local.get $2 i32.lt_s select - local.get $41 + local.get $39 i32.gt_s if local.get $0 i32.load offset=4 - local.get $41 + local.get $39 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $41 + local.get $39 local.get $0 i32.const 6928 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $41 + local.get $39 i32.const 1 i32.add - local.set $41 + local.set $39 br $for-loop|0188 end end @@ -22392,27 +22389,27 @@ local.get $2 i32.lt_s select - local.get $40 + local.get $38 i32.gt_s if local.get $0 i32.load offset=4 - local.get $40 + local.get $38 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $40 + local.get $38 local.get $0 i32.const 6960 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $40 + local.get $38 i32.const 1 i32.add - local.set $40 + local.set $38 br $for-loop|0193 end end @@ -22433,9 +22430,9 @@ unreachable end i32.const 0 - local.set $2 + local.set $1 loop $for-loop|6 - local.get $2 + local.get $1 i32.const 100 i32.lt_s if @@ -22446,10 +22443,10 @@ local.get $0 call $~lib/array/Array#pop drop - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|6 end end @@ -22513,9 +22510,9 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.load offset=4 local.set $5 loop $for-loop|0197 @@ -22527,10 +22524,10 @@ local.get $6 i32.lt_s select - local.get $39 + local.get $37 i32.gt_s if - local.get $39 + local.get $37 i32.const 2 i32.shl local.tee $6 @@ -22545,16 +22542,16 @@ local.get $6 i32.add local.get $7 - local.get $39 + local.get $37 local.get $1 i32.const 6992 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store - local.get $39 + local.get $37 i32.const 1 i32.add - local.set $39 + local.set $37 br $for-loop|0197 end end @@ -22562,9 +22559,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 - local.get $3 + local.get $4 i32.load offset=12 i32.const 4 i32.ne @@ -22576,10 +22573,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 0 call $~lib/array/Array#__get - local.set $12 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 @@ -22588,7 +22584,6 @@ i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s - local.get $12 f32.ne if i32.const 0 @@ -22939,12 +22934,12 @@ local.get $2 i32.lt_s select - local.get $38 + local.get $36 i32.gt_s if local.get $0 i32.load offset=4 - local.get $38 + local.get $36 i32.const 2 i32.shl i32.add @@ -22952,22 +22947,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $24 + local.get $22 local.get $2 - local.get $38 + local.get $36 local.get $0 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $24 - local.get $38 + local.set $22 + local.get $36 i32.const 1 i32.add - local.set $38 + local.set $36 br $for-loop|0206 end end - local.get $24 + local.get $22 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22997,36 +22992,36 @@ local.get $2 local.get $1 i32.load offset=12 - local.tee $3 + local.tee $4 local.get $2 - local.get $3 + local.get $4 i32.lt_s select - local.get $37 + local.get $35 i32.gt_s if local.get $1 i32.load offset=4 - local.get $37 + local.get $35 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $4 i32.const 4 global.set $~argumentsLength local.get $0 - local.get $3 - local.get $37 + local.get $4 + local.get $35 local.get $1 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 - local.get $37 + local.get $35 i32.const 1 i32.add - local.set $37 + local.set $35 br $for-loop|0210 end end @@ -23063,12 +23058,12 @@ local.get $2 i32.lt_s select - local.get $36 + local.get $34 i32.gt_s if local.get $1 i32.load offset=4 - local.get $36 + local.get $34 i32.const 2 i32.shl i32.add @@ -23076,22 +23071,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $23 + local.get $21 local.get $2 - local.get $36 + local.get $34 local.get $1 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $23 - local.get $36 + local.set $21 + local.get $34 i32.const 1 i32.add - local.set $36 + local.set $34 br $for-loop|0214 end end - local.get $23 + local.get $21 i32.eqz if i32.const 0 @@ -23121,12 +23116,12 @@ local.get $2 i32.lt_s select - local.get $35 + local.get $33 i32.gt_s if local.get $1 i32.load offset=4 - local.get $35 + local.get $33 i32.const 2 i32.shl i32.add @@ -23134,22 +23129,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $22 + local.get $20 local.get $2 - local.get $35 + local.get $33 local.get $1 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $22 - local.get $35 + local.set $20 + local.get $33 i32.const 1 i32.add - local.set $35 + local.set $33 br $for-loop|0218 end end - local.get $22 + local.get $20 if i32.const 0 i32.const 1552 @@ -23178,12 +23173,12 @@ local.get $2 i32.lt_s select - local.get $34 + local.get $32 i32.gt_s if local.get $1 i32.load offset=4 - local.get $34 + local.get $32 i32.const 2 i32.shl i32.add @@ -23191,22 +23186,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $21 + local.get $19 local.get $2 - local.get $34 + local.get $32 local.get $1 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $21 - local.get $34 + local.set $19 + local.get $32 i32.const 1 i32.add - local.set $34 + local.set $32 br $for-loop|0222 end end - local.get $21 + local.get $19 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23255,12 +23250,12 @@ local.get $2 i32.lt_s select - local.get $33 + local.get $31 i32.gt_s if local.get $1 i32.load offset=4 - local.get $33 + local.get $31 i32.const 2 i32.shl i32.add @@ -23268,22 +23263,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $20 + local.get $18 local.get $2 - local.get $33 + local.get $31 local.get $1 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $20 - local.get $33 + local.set $18 + local.get $31 i32.const 1 i32.add - local.set $33 + local.set $31 br $for-loop|0227 end end - local.get $20 + local.get $18 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23343,12 +23338,12 @@ local.get $2 i32.lt_s select - local.get $32 + local.get $30 i32.gt_s if local.get $0 i32.load offset=4 - local.get $32 + local.get $30 i32.const 2 i32.shl i32.add @@ -23356,22 +23351,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $19 + local.get $17 local.get $2 - local.get $32 + local.get $30 local.get $0 i32.const 7440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $19 - local.get $32 + local.set $17 + local.get $30 i32.const 1 i32.add - local.set $32 + local.set $30 br $for-loop|0231 end end - local.get $19 + local.get $17 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -23418,47 +23413,47 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 7472 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=12 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0235 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $18 - local.get $1 + local.get $16 local.get $2 local.get $0 + local.get $1 i32.const 7472 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $18 - local.get $2 + local.set $16 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0235 end end - local.get $18 + local.get $16 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23474,49 +23469,49 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store local.get $0 i32.const 7504 i32.store offset=8 i32.const 4 - local.set $1 - local.get $3 + local.set $2 + local.get $1 i32.load offset=12 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0239 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $4 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $0 local.get $2 - local.get $3 + local.get $4 + local.get $0 + local.get $1 i32.const 7504 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $2 + local.set $2 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0239 end end - local.get $1 + local.get $2 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23541,38 +23536,38 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0243 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $17 - local.get $0 + local.get $15 local.get $2 + local.get $0 local.get $1 i32.const 7536 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $17 - local.get $2 + local.set $15 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0243 end end - local.get $17 + local.get $15 i32.eqz if i32.const 0 @@ -23594,38 +23589,38 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0247 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $16 - local.get $0 + local.get $14 local.get $2 + local.get $0 local.get $1 i32.const 7568 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $16 - local.get $2 + local.set $14 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0247 end end - local.get $16 + local.get $14 if i32.const 0 i32.const 1552 @@ -23646,38 +23641,38 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0251 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $15 - local.get $0 + local.get $13 local.get $2 + local.get $0 local.get $1 i32.const 7600 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $15 - local.get $2 + local.set $13 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0251 end end - local.get $15 + local.get $13 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23718,38 +23713,38 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0256 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $14 - local.get $0 + local.get $12 local.get $2 + local.get $0 local.get $1 i32.const 7632 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $14 - local.get $2 + local.set $12 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0256 end end - local.get $14 + local.get $12 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23792,47 +23787,47 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 7664 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=12 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0260 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $13 - local.get $1 + local.get $11 local.get $2 local.get $0 + local.get $1 i32.const 7664 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $13 - local.get $2 + local.set $11 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0260 end end - local.get $13 + local.get $11 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23894,51 +23889,51 @@ i64.const -7046029254386353131 call $~lib/bindings/Math/random i64.reinterpret_f64 - local.tee $11 - local.get $11 + local.tee $9 + local.get $9 i64.eqz select - local.tee $11 + local.tee $9 i64.const 33 i64.shr_u - local.get $11 + local.get $9 i64.xor i64.const -49064778989728563 i64.mul - local.tee $11 + local.tee $9 i64.const 33 i64.shr_u - local.get $11 + local.get $9 i64.xor i64.const -4265267296055464877 i64.mul - local.tee $11 + local.tee $9 i64.const 33 i64.shr_u - local.get $11 + local.get $9 i64.xor global.set $~lib/math/random_state0_64 global.get $~lib/math/random_state0_64 i64.const -1 i64.xor - local.tee $11 + local.tee $9 i64.const 33 i64.shr_u - local.get $11 + local.get $9 i64.xor i64.const -49064778989728563 i64.mul - local.tee $11 + local.tee $9 i64.const 33 i64.shr_u - local.get $11 + local.get $9 i64.xor i64.const -4265267296055464877 i64.mul - local.tee $11 + local.tee $9 i64.const 33 i64.shr_u - local.get $11 + local.get $9 i64.xor global.set $~lib/math/random_state1_64 i32.const 1 @@ -24384,7 +24379,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24405,7 +24400,7 @@ unreachable end i32.const 8208 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8208 i32.store @@ -24414,7 +24409,7 @@ i32.load offset=4 local.get $0 i32.load offset=12 - local.get $1 + local.get $2 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24447,21 +24442,21 @@ drop loop $for-loop|029 local.get $2 - local.get $62 + local.get $54 i32.gt_s if local.get $0 - local.get $62 + local.get $54 call $~lib/array/Array#__get - local.tee $10 - local.get $10 + local.tee $8 + local.get $8 f64.ne if (result i32) local.get $1 - local.get $62 + local.get $54 call $~lib/array/Array#__get - local.tee $10 - local.get $10 + local.tee $8 + local.get $8 f64.ne else i32.const 0 @@ -24470,19 +24465,19 @@ if i32.const 0 local.get $0 - local.get $62 + local.get $54 call $~lib/array/Array#__get local.get $1 - local.get $62 + local.get $54 call $~lib/array/Array#__get f64.ne br_if $__inlined_func$std/array/isArraysEqual drop end - local.get $62 + local.get $54 i32.const 1 i32.add - local.set $62 + local.set $54 br $for-loop|029 end end @@ -24508,7 +24503,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24529,7 +24524,7 @@ unreachable end i32.const 8384 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8384 i32.store @@ -24538,7 +24533,7 @@ i32.load offset=4 local.get $0 i32.load offset=12 - local.get $1 + local.get $2 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24631,7 +24626,7 @@ i32.const 3 i32.const 8688 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24654,12 +24649,12 @@ global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $8 + local.tee $11 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $9 + local.tee $12 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 512 @@ -24716,9 +24711,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 call $std/array/assertSortedDefault - local.get $3 + local.get $4 local.get $5 i32.const 0 call $std/array/isArraysEqual @@ -24761,9 +24756,9 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 call $std/array/assertSortedDefault - local.get $8 + local.get $11 local.get $5 i32.const 4 call $std/array/isArraysEqual @@ -24776,9 +24771,9 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $12 call $std/array/assertSortedDefault - local.get $9 + local.get $12 local.get $5 i32.const 4 call $std/array/isArraysEqual @@ -24804,20 +24799,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i64.const 0 i64.store offset=16 - local.get $1 + local.get $0 global.get $std/array/inputStabArr - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $1 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -24826,74 +24821,74 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i32.const 0 i32.store i32.const 0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $4 + local.get $4 i32.const 0 i32.gt_s select local.set $5 - local.get $0 - local.get $3 + local.get $2 + local.get $4 local.get $5 i32.sub - local.tee $0 + local.tee $2 i32.const 0 - local.get $0 + local.get $2 i32.const 0 i32.gt_s select - local.tee $3 + local.tee $2 i32.const 2 i32.const 20 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.load offset=4 - local.set $0 - local.get $2 + local.set $6 + local.get $1 i32.load offset=4 local.get $5 i32.const 2 i32.shl i32.add - local.set $2 - local.get $3 + local.set $1 + local.get $2 i32.const 2 i32.shl - local.set $3 + local.set $2 loop $while-continue|00 - local.get $3 - local.get $64 + local.get $2 + local.get $62 i32.gt_u if - local.get $0 - local.get $64 + local.get $6 + local.get $62 i32.add - local.get $2 - local.get $64 + local.get $1 + local.get $62 i32.add i32.load local.tee $5 i32.store local.get $5 if - local.get $6 + local.get $4 local.get $5 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $64 + local.get $62 i32.const 4 i32.add - local.set $64 + local.set $62 br $while-continue|00 end end @@ -24902,68 +24897,69 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $6 + local.tee $1 + local.get $4 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 8880 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.get $6 + local.get $4 i32.load offset=12 i32.const 8880 call $~lib/util/sort/SORT - local.get $1 - local.get $6 + local.get $0 + local.get $4 i32.store offset=12 i32.const 1 - local.set $64 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|02 - local.get $0 + local.get $1 local.get $63 i32.gt_s if block $for-break0 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 local.get $63 call $~lib/array/Array#__get - local.tee $1 + local.tee $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr - local.tee $2 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 local.get $63 call $~lib/array/Array#__get - local.tee $2 + local.tee $5 i32.store offset=20 - local.get $1 - i32.load local.get $2 i32.load + local.get $5 + i32.load i32.ne if (result i32) i32.const 1 else - local.get $1 - i32.load offset=4 local.get $2 i32.load offset=4 + local.get $5 + i32.load offset=4 i32.ne end if i32.const 0 - local.set $64 + local.set $0 br $for-break0 end local.get $63 @@ -24974,7 +24970,7 @@ end end end - local.get $64 + local.get $0 i32.eqz if i32.const 0 @@ -25078,20 +25074,20 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 if local.get $2 - local.get $3 + local.get $4 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $3 + local.get $4 i32.store offset=4 local.get $2 i32.const 32 @@ -25107,7 +25103,7 @@ local.get $2 i32.store loop $for-loop|0313 - local.get $31 + local.get $29 i32.const 2 i32.lt_s if @@ -25119,17 +25115,17 @@ local.get $1 i32.const 0 i32.const 1 - local.get $31 + local.get $29 i32.sub call $~lib/array/Array#__set local.get $2 - local.get $31 + local.get $29 local.get $1 call $~lib/array/Array<~lib/array/Array>#__set - local.get $31 + local.get $29 i32.const 1 i32.add - local.set $31 + local.set $29 br $for-loop|0313 end end @@ -25147,7 +25143,7 @@ call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $61 + local.set $60 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25194,20 +25190,20 @@ i32.const 2048 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 if local.get $2 - local.get $3 + local.get $4 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $3 + local.get $4 i32.store offset=4 local.get $2 i32.const 2048 @@ -25223,7 +25219,7 @@ local.get $2 i32.store loop $for-loop|039 - local.get $61 + local.get $60 i32.const 512 i32.lt_s if @@ -25247,7 +25243,7 @@ i32.store local.get $1 i32.const 511 - local.get $61 + local.get $60 i32.sub i32.store global.get $~lib/memory/__stack_pointer @@ -25258,13 +25254,13 @@ local.get $1 i32.store offset=4 local.get $2 - local.get $61 + local.get $60 local.get $1 call $~lib/array/Array<~lib/array/Array>#__set - local.get $61 + local.get $60 i32.const 1 i32.add - local.set $61 + local.set $60 br $for-loop|039 end end @@ -25286,7 +25282,7 @@ i32.const 31 i32.const 9264 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 7 @@ -25299,7 +25295,7 @@ i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $62 + local.set $61 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25322,7 +25318,7 @@ unreachable end i32.const 9360 - local.set $62 + local.set $61 global.get $~lib/memory/__stack_pointer i32.const 9360 i32.store @@ -25339,16 +25335,17 @@ i32.const 0 i32.store block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 + local.get $1 i32.load offset=12 - local.get $62 + local.get $61 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -25360,17 +25357,17 @@ i64.const 0 i64.store i32.const 1 - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|048 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $0 local.get $1 + local.get $0 i32.const 1 i32.sub call $~lib/array/Array#__get @@ -25378,8 +25375,8 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array#__get local.set $6 global.get $~lib/memory/__stack_pointer @@ -25389,7 +25386,7 @@ global.set $~argumentsLength local.get $5 local.get $6 - local.get $62 + local.get $61 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -25402,10 +25399,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|048 end end @@ -25444,9 +25441,9 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 local.get $2 i32.load offset=12 i32.ne @@ -25458,7 +25455,7 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end - local.get $0 + local.get $1 local.get $2 i32.eq if @@ -25470,25 +25467,25 @@ br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end loop $for-loop|045 - local.get $1 - local.get $30 + local.get $0 + local.get $28 i32.gt_s if - local.get $0 - local.get $30 + local.get $1 + local.get $28 call $~lib/array/Array#__get - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store local.get $2 - local.get $30 + local.get $28 call $~lib/array/Array#__get local.set $5 global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=4 - local.get $3 + local.get $4 local.get $5 call $~lib/string/String.__eq i32.eqz @@ -25500,10 +25497,10 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end - local.get $30 + local.get $28 i32.const 1 i32.add - local.set $30 + local.set $28 br $for-loop|045 end end @@ -25523,7 +25520,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -25542,7 +25539,7 @@ local.tee $5 i32.store loop $for-loop|049 - local.get $25 + local.get $23 i32.const 400 i32.lt_s if @@ -25552,7 +25549,7 @@ i32.trunc_f64_s local.set $6 i32.const 0 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -25562,19 +25559,19 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 i32.const 9232 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.const 9232 i32.store loop $for-loop|023 - local.get $2 + local.get $0 local.get $6 i32.lt_s if @@ -25594,7 +25591,7 @@ f64.mul f64.floor i32.trunc_f64_s - local.set $8 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25603,8 +25600,8 @@ i32.const 15652 i32.lt_s br_if $folding-inner1 - local.get $0 - local.set $1 + local.get $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -25613,7 +25610,7 @@ i32.load i32.const 1 i32.shr_u - local.get $8 + local.get $11 i32.le_u if global.get $~lib/memory/__stack_pointer @@ -25621,17 +25618,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $0 + local.set $1 br $__inlined_func$~lib/string/String#charAt end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 - local.get $8 + local.get $1 + local.get $11 i32.const 1 i32.shl i32.const 7696 @@ -25644,18 +25641,18 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 local.get $7 + local.get $2 local.get $1 - local.get $0 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|023 end end @@ -25664,16 +25661,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 local.get $5 - local.get $25 - local.get $0 + local.get $23 + local.get $1 call $~lib/array/Array<~lib/array/Array>#__set - local.get $25 + local.get $23 i32.const 1 i32.add - local.set $25 + local.set $23 br $for-loop|049 end end @@ -25681,13 +25678,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 local.get $5 i32.store offset=156 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25710,13 +25707,13 @@ unreachable end i32.const 9392 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 9392 i32.store end local.get $5 - local.get $0 + local.get $1 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25729,18 +25726,19 @@ call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer + local.tee $0 local.get $1 i32.store offset=164 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9520 i32.store offset=168 i32.const 0 local.set $0 i32.const 0 - local.set $61 + local.set $60 local.get $1 i32.load offset=4 - local.set $3 + local.set $2 local.get $1 i32.load offset=12 local.set $1 @@ -25759,7 +25757,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $4 i32.const 0 i32.lt_s if @@ -25768,18 +25766,18 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $2 + local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end - local.get $1 + local.get $4 i32.eqz if i32.const 9456 i32.const 9488 - local.get $3 + local.get $2 i32.load8_u select - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25787,7 +25785,7 @@ br $__inlined_func$~lib/util/string/joinBooleanArray end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.const 9516 i32.load i32.const 1 @@ -25803,37 +25801,37 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|149 - local.get $1 - local.get $61 + local.get $4 + local.get $60 i32.gt_s if - local.get $3 - local.get $61 + local.get $2 + local.get $60 i32.add i32.load8_u local.tee $7 i32.eqz i32.const 4 i32.add - local.set $8 + local.set $11 local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9456 i32.const 9488 local.get $7 select - local.get $8 + local.get $11 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $8 + local.get $11 i32.add local.set $0 local.get $5 @@ -25841,7 +25839,7 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9520 local.get $5 @@ -25853,46 +25851,46 @@ i32.add local.set $0 end - local.get $61 + local.get $60 i32.const 1 i32.add - local.set $61 + local.set $60 br $for-loop|149 end end - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.add i32.load8_u - local.tee $1 + local.tee $2 i32.eqz i32.const 4 i32.add - local.set $3 + local.set $4 local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9456 i32.const 9488 - local.get $1 + local.get $2 select - local.get $3 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $6 local.get $0 - local.get $3 + local.get $4 i32.add local.tee $0 i32.gt_s if - local.get $2 + local.get $1 local.get $0 call $~lib/string/String#substring - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25906,12 +25904,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $2 + local.get $1 i32.store local.get $0 i32.const 9552 i32.store offset=8 - local.get $2 + local.get $1 i32.const 9552 call $~lib/string/String.__eq i32.eqz @@ -26234,7 +26232,7 @@ i32.const 3 i32.const 13424 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store offset=144 local.get $0 call $~lib/array/Array#toString @@ -26301,7 +26299,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer @@ -26351,10 +26349,10 @@ i32.const 0 local.set $0 i32.const 0 - local.set $62 + local.set $61 local.get $1 i32.load offset=4 - local.set $3 + local.set $4 local.get $1 i32.load offset=12 local.set $1 @@ -26373,7 +26371,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.lt_s if @@ -26382,16 +26380,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $2 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $1 + local.get $2 i32.eqz if - local.get $3 + local.get $4 i32.load8_s call $~lib/util/number/itoa32 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26399,7 +26397,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 9516 i32.load i32.const 1 @@ -26415,20 +26413,20 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|050 - local.get $1 - local.get $62 + local.get $2 + local.get $61 i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $3 - local.get $62 + local.get $4 + local.get $61 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -26440,7 +26438,7 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9520 local.get $5 @@ -26452,10 +26450,10 @@ i32.add local.set $0 end - local.get $62 + local.get $61 i32.const 1 i32.add - local.set $62 + local.set $61 br $for-loop|050 end end @@ -26463,10 +26461,10 @@ local.get $0 i32.const 1 i32.shl - local.get $2 - i32.add local.get $1 - local.get $3 + i32.add + local.get $2 + local.get $4 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -26475,10 +26473,10 @@ local.tee $0 i32.gt_s if - local.get $2 + local.get $1 local.get $0 call $~lib/string/String#substring - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26495,12 +26493,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 13584 i32.store offset=8 - local.get $2 + local.get $1 i32.const 13584 call $~lib/string/String.__eq i32.eqz @@ -26540,10 +26539,10 @@ i32.const 0 local.set $0 i32.const 0 - local.set $62 + local.set $61 local.get $1 i32.load offset=4 - local.set $3 + local.set $4 local.get $1 i32.load offset=12 local.set $1 @@ -26562,7 +26561,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.lt_s if @@ -26571,16 +26570,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $2 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $1 + local.get $2 i32.eqz if - local.get $3 + local.get $4 i32.load16_u call $~lib/util/number/utoa32 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26588,7 +26587,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 9516 i32.load i32.const 1 @@ -26604,22 +26603,22 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|051 - local.get $1 - local.get $62 + local.get $2 + local.get $61 i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $62 + local.get $61 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u call $~lib/util/number/itoa_buffered @@ -26631,7 +26630,7 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9520 local.get $5 @@ -26643,10 +26642,10 @@ i32.add local.set $0 end - local.get $62 + local.get $61 i32.const 1 i32.add - local.set $62 + local.set $61 br $for-loop|051 end end @@ -26654,12 +26653,12 @@ local.get $0 i32.const 1 i32.shl - local.get $2 - i32.add local.get $1 + i32.add + local.get $2 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u call $~lib/util/number/itoa_buffered @@ -26668,10 +26667,10 @@ local.tee $0 i32.gt_s if - local.get $2 + local.get $1 local.get $0 call $~lib/string/String#substring - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26688,12 +26687,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 13648 i32.store offset=8 - local.get $2 + local.get $1 i32.const 13648 call $~lib/string/String.__eq i32.eqz @@ -26738,9 +26738,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 13744 i32.store offset=8 local.get $0 @@ -26788,9 +26789,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 13888 i32.store offset=8 local.get $0 @@ -26912,10 +26914,10 @@ i32.const 9520 i32.store i32.const 0 - local.set $62 + local.set $61 local.get $1 i32.load offset=4 - local.set $3 + local.set $2 local.get $1 i32.load offset=12 local.set $1 @@ -26947,14 +26949,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $2 + local.set $1 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -26965,7 +26967,7 @@ else i32.const 9232 end - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -26973,7 +26975,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9232 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 9232 i32.store offset=4 @@ -26981,17 +26983,17 @@ i32.load i32.const 1 i32.shr_u - local.set $1 + local.set $4 loop $for-loop|052 local.get $0 - local.get $62 + local.get $61 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $62 + local.get $61 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.tee $5 @@ -27005,25 +27007,25 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $2 + local.get $1 local.get $5 call $~lib/string/String.__concat - local.tee $2 + local.tee $1 i32.store offset=4 end - local.get $1 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 9520 call $~lib/string/String.__concat - local.tee $2 + local.tee $1 i32.store offset=4 end - local.get $62 + local.get $61 i32.const 1 i32.add - local.set $62 + local.set $61 br $for-loop|052 end end @@ -27031,7 +27033,7 @@ local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.tee $0 @@ -27045,10 +27047,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 call $~lib/string/String.__concat - local.tee $2 + local.tee $1 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27061,12 +27063,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 14304 i32.store offset=8 - local.get $2 + local.get $1 i32.const 14304 call $~lib/string/String.__eq i32.eqz @@ -27126,10 +27129,10 @@ i32.const 9520 i32.store i32.const 0 - local.set $62 + local.set $61 local.get $1 i32.load offset=4 - local.set $3 + local.set $2 local.get $1 i32.load offset=12 local.set $1 @@ -27161,14 +27164,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $2 + local.set $1 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -27179,7 +27182,7 @@ else i32.const 9232 end - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27187,7 +27190,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9232 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 9232 i32.store offset=4 @@ -27195,17 +27198,17 @@ i32.load i32.const 1 i32.shr_u - local.set $1 + local.set $4 loop $for-loop|053 local.get $0 - local.get $62 + local.get $61 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $62 + local.get $61 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.tee $5 @@ -27219,25 +27222,25 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $2 + local.get $1 local.get $5 call $~lib/string/String.__concat - local.tee $2 + local.tee $1 i32.store offset=4 end - local.get $1 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 9520 call $~lib/string/String.__concat - local.tee $2 + local.tee $1 i32.store offset=4 end - local.get $62 + local.get $61 i32.const 1 i32.add - local.set $62 + local.set $61 br $for-loop|053 end end @@ -27245,7 +27248,7 @@ local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.tee $0 @@ -27259,10 +27262,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 call $~lib/string/String.__concat - local.tee $2 + local.tee $1 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27275,12 +27278,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 14304 i32.store offset=8 - local.get $2 + local.get $1 i32.const 14304 call $~lib/string/String.__eq i32.eqz @@ -27348,10 +27352,10 @@ i32.const 9520 i32.store i32.const 0 - local.set $62 + local.set $61 local.get $1 i32.load offset=4 - local.set $3 + local.set $2 local.get $1 i32.load offset=12 local.set $1 @@ -27383,14 +27387,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $2 + local.set $1 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -27401,7 +27405,7 @@ else i32.const 9232 end - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27409,7 +27413,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end i32.const 9232 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 9232 i32.store offset=4 @@ -27417,17 +27421,17 @@ i32.load i32.const 1 i32.shr_u - local.set $1 + local.set $4 loop $for-loop|054 local.get $0 - local.get $62 + local.get $61 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $62 + local.get $61 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.tee $5 @@ -27441,25 +27445,25 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=8 - local.get $2 + local.get $1 local.get $5 call $~lib/string/String.__concat - local.tee $2 + local.tee $1 i32.store offset=4 end - local.get $1 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 9520 call $~lib/string/String.__concat - local.tee $2 + local.tee $1 i32.store offset=4 end - local.get $62 + local.get $61 i32.const 1 i32.add - local.set $62 + local.set $61 br $for-loop|054 end end @@ -27467,7 +27471,7 @@ local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.tee $0 @@ -27481,10 +27485,10 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 call $~lib/string/String.__concat - local.tee $2 + local.tee $1 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27497,12 +27501,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 13008 i32.store offset=8 - local.get $2 + local.get $1 i32.const 13008 call $~lib/string/String.__eq i32.eqz @@ -27580,16 +27585,16 @@ unreachable end i32.const 0 - local.set $2 + local.set $1 loop $for-loop|7 - local.get $2 + local.get $1 i32.const 10 i32.lt_s if local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#__get - local.get $2 + local.get $1 i32.ne if i32.const 0 @@ -27599,10 +27604,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|7 end end @@ -27674,37 +27679,37 @@ local.set $1 loop $for-loop|0317 local.get $1 - local.get $60 + local.get $59 i32.gt_s if - local.get $60 + local.get $59 i32.const 2 i32.shl local.get $2 i32.add i32.load - local.tee $3 + local.tee $4 if (result i32) - local.get $3 + local.get $4 i32.load offset=12 else i32.const 0 end - local.get $29 + local.get $27 i32.add - local.set $29 - local.get $60 + local.set $27 + local.get $59 i32.const 1 i32.add - local.set $60 + local.set $59 br $for-loop|0317 end end global.get $~lib/memory/__stack_pointer - local.get $29 + local.get $27 i32.const 2 i32.shl - local.tee $3 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new local.tee $5 @@ -27716,10 +27721,10 @@ local.tee $6 i32.store offset=4 local.get $6 - local.get $29 + local.get $27 i32.store offset=12 local.get $6 - local.get $3 + local.get $4 i32.store offset=8 local.get $6 local.get $5 @@ -27735,51 +27740,51 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end i32.const 0 - local.set $60 + local.set $59 loop $for-loop|1320 local.get $1 - local.get $60 + local.get $59 i32.gt_s if - local.get $60 + local.get $59 i32.const 2 i32.shl local.get $2 i32.add i32.load - local.tee $3 + local.tee $4 if - local.get $4 + local.get $3 local.get $5 i32.add - local.get $3 + local.get $4 i32.load offset=4 - local.get $3 + local.get $4 i32.load offset=12 i32.const 2 i32.shl - local.tee $3 + local.tee $4 call $~lib/memory/memory.copy local.get $3 local.get $4 i32.add - local.set $4 + local.set $3 end - local.get $60 + local.get $59 i32.const 1 i32.add - local.set $60 + local.set $59 br $for-loop|1320 end end i32.const 0 - local.set $60 + local.set $59 loop $for-loop|2323 - local.get $29 - local.get $60 + local.get $27 + local.get $59 i32.gt_s if - local.get $60 + local.get $59 i32.const 2 i32.shl local.get $5 @@ -27792,10 +27797,10 @@ i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $60 + local.get $59 i32.const 1 i32.add - local.set $60 + local.set $59 br $for-loop|2323 end end @@ -27826,28 +27831,28 @@ unreachable end i32.const 0 - local.set $2 + local.set $1 loop $for-loop|8 local.get $0 i32.load offset=12 - local.get $2 + local.get $1 i32.gt_s if local.get $6 - local.get $2 + local.get $1 call $~lib/array/Array#__get - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 call $~lib/string/String.__eq i32.eqz @@ -27859,10 +27864,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|8 end end @@ -27987,12 +27992,12 @@ local.get $5 i32.lt_s select - local.get $28 + local.get $26 i32.gt_s if global.get $~lib/memory/__stack_pointer local.tee $5 - local.get $28 + local.get $26 i32.const 2 i32.shl local.tee $6 @@ -28006,7 +28011,7 @@ global.set $~argumentsLength local.get $5 local.get $7 - local.get $28 + local.get $26 local.get $1 i32.const 15120 i32.load @@ -28025,10 +28030,10 @@ i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $28 + local.get $26 i32.const 1 i32.add - local.set $28 + local.set $26 br $for-loop|065 end end @@ -28215,7 +28220,7 @@ end local.get $0 i32.load offset=4 - local.set $0 + local.set $4 loop $while-continue|0 local.get $2 local.get $3 @@ -28225,12 +28230,12 @@ local.get $2 i32.const 2 i32.shl - local.get $0 + local.get $4 i32.add i32.load - local.tee $4 + local.tee $0 i32.store - local.get $4 + local.get $0 local.get $1 call $~lib/string/String.__eq if @@ -28450,6 +28455,7 @@ ) (func $std/array/internalCapacity (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28467,9 +28473,10 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 local.get $0 i32.load local.tee $0 @@ -28510,13 +28517,13 @@ i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select - local.tee $3 + local.tee $2 i32.add local.tee $4 i32.const 268435455 @@ -28542,7 +28549,7 @@ local.tee $5 local.get $0 i32.load offset=4 - local.get $2 + local.get $3 i32.const 2 i32.shl local.tee $0 @@ -28552,7 +28559,7 @@ i32.add local.get $1 i32.load offset=4 - local.get $3 + local.get $2 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -28725,30 +28732,30 @@ i32.const 0 i32.gt_s select - local.tee $1 + local.tee $5 i32.const 2 i32.const 3 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 local.get $0 i32.load offset=4 - local.tee $5 + local.tee $2 local.get $4 i32.const 2 i32.shl i32.add local.tee $6 - local.get $1 + local.get $5 i32.const 2 i32.shl call $~lib/memory/memory.copy local.get $3 - local.get $1 local.get $4 + local.get $5 i32.add local.tee $4 i32.ne @@ -28757,7 +28764,7 @@ local.get $4 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add local.get $3 local.get $4 @@ -28768,14 +28775,14 @@ end local.get $0 local.get $3 - local.get $1 + local.get $5 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -29899,6 +29906,7 @@ end end global.get $~lib/memory/__stack_pointer + local.get $6 local.get $2 i32.const 20 i32.sub @@ -29906,7 +29914,6 @@ i32.const 1 i32.shr_u local.tee $1 - local.get $6 i32.mul local.get $3 i32.add @@ -30572,18 +30579,19 @@ i32.store offset=4 block $__inlined_func$~lib/array/Array#findLastIndex (result i32) local.get $0 + local.tee $2 i32.load offset=12 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 - i32.load offset=4 local.get $2 + i32.load offset=4 + local.get $0 i32.const 2 i32.shl i32.add @@ -30591,19 +30599,19 @@ local.set $3 i32.const 3 global.set $~argumentsLength - local.get $2 + local.get $0 local.get $3 - local.get $2 local.get $0 + local.get $2 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex drop - local.get $2 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0 end end @@ -30644,7 +30652,8 @@ select local.get $1 i32.add - local.tee $1 + local.set $1 + local.get $1 local.get $2 i32.ge_u if @@ -31122,13 +31131,13 @@ i32.store local.get $0 i32.load offset=12 - local.tee $4 + local.tee $2 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select - local.tee $2 + local.tee $4 i32.add local.tee $3 i32.const 268435455 @@ -31154,7 +31163,7 @@ local.tee $5 local.get $0 i32.load offset=4 - local.get $4 + local.get $2 i32.const 2 i32.shl local.tee $0 @@ -31164,7 +31173,7 @@ i32.add local.get $1 i32.load offset=4 - local.get $2 + local.get $4 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -31386,17 +31395,17 @@ i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 local.tee $5 - local.get $4 + local.get $3 local.get $5 i32.lt_s select @@ -31420,7 +31429,7 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $3 + local.get $4 local.get $5 call $~lib/array/Array#push drop @@ -31440,7 +31449,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 return end i32.const 32064 @@ -31830,30 +31839,30 @@ i32.const 0 i32.gt_s select - local.tee $1 + local.tee $5 i32.const 2 i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 local.get $0 i32.load offset=4 - local.tee $5 + local.tee $2 local.get $4 i32.const 2 i32.shl i32.add local.tee $6 - local.get $1 + local.get $5 i32.const 2 i32.shl call $~lib/memory/memory.copy local.get $3 - local.get $1 local.get $4 + local.get $5 i32.add local.tee $4 i32.ne @@ -31862,7 +31871,7 @@ local.get $4 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add local.get $3 local.get $4 @@ -31873,7 +31882,7 @@ end local.get $0 local.get $3 - local.get $1 + local.get $5 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -31884,7 +31893,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 return end i32.const 32064 @@ -31935,7 +31944,7 @@ local.get $4 i32.const 1 i32.sub - local.set $4 + local.set $5 loop $while-continue|0 local.get $1 local.get $3 @@ -31946,22 +31955,22 @@ i32.shl local.get $2 i32.add - local.tee $5 + local.tee $6 i32.load - local.set $6 + local.set $4 + local.get $6 local.get $5 - local.get $4 local.get $1 i32.sub i32.const 2 i32.shl local.get $2 i32.add - local.tee $5 + local.tee $6 i32.load i32.store - local.get $5 local.get $6 + local.get $4 i32.store local.get $1 i32.const 1 @@ -32485,36 +32494,37 @@ i32.store offset=4 block $__inlined_func$~lib/array/Array#findLastIndex (result i32) local.get $0 + local.tee $2 i32.load offset=12 i32.const 1 i32.sub - local.set $2 + local.set $0 loop $for-loop|0 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 local.get $0 + local.get $2 i32.load offset=4 i32.add i32.load8_u local.set $3 i32.const 3 global.set $~argumentsLength - local.get $2 + local.get $0 local.get $3 - local.get $2 local.get $0 + local.get $2 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex drop - local.get $2 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0 end end @@ -32555,7 +32565,8 @@ select local.get $1 i32.add - local.tee $1 + local.set $1 + local.get $1 local.get $2 i32.ge_u if @@ -32962,13 +32973,13 @@ i32.store local.get $0 i32.load offset=12 - local.tee $4 + local.tee $2 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select - local.tee $2 + local.tee $4 i32.add local.tee $3 i32.const 1073741820 @@ -32994,14 +33005,14 @@ local.tee $5 local.get $0 i32.load offset=4 - local.get $4 + local.get $2 call $~lib/memory/memory.copy - local.get $4 + local.get $2 local.get $5 i32.add local.get $1 i32.load offset=4 - local.get $2 + local.get $4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -33024,7 +33035,6 @@ (func $export:~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -33056,20 +33066,18 @@ i32.const 2147483647 local.set $3 end + local.get $3 local.get $0 i32.load offset=12 local.tee $4 - local.set $5 - local.get $3 - local.get $4 local.get $3 local.get $4 i32.lt_s select - local.set $3 + local.set $5 local.get $0 i32.load offset=4 - local.tee $6 + local.tee $3 local.get $1 i32.const 0 i32.lt_s @@ -33087,7 +33095,7 @@ local.get $1 local.get $4 local.get $1 - local.get $5 + local.get $4 i32.lt_s select end @@ -33115,14 +33123,14 @@ select end local.tee $2 - local.get $6 - i32.add local.get $3 + i32.add + local.get $5 i32.const 0 i32.lt_s if (result i32) - local.get $3 local.get $4 + local.get $5 i32.add local.tee $3 i32.const 0 @@ -33131,11 +33139,11 @@ i32.gt_s select else - local.get $3 + local.get $5 local.get $4 - local.get $3 local.get $4 - i32.lt_s + local.get $5 + i32.gt_s select end local.get $2 @@ -33310,17 +33318,17 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 local.tee $5 - local.get $4 + local.get $3 local.get $5 i32.lt_s select @@ -33342,7 +33350,7 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $3 + local.get $4 local.get $5 call $~lib/array/Array#push drop @@ -33362,7 +33370,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 return end i32.const 32064 @@ -33767,33 +33775,33 @@ i32.const 0 i32.gt_s select - local.tee $1 + local.tee $5 i32.const 0 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 local.get $4 local.get $0 i32.load offset=4 - local.tee $5 + local.tee $2 i32.add local.tee $6 - local.get $1 + local.get $5 call $~lib/memory/memory.copy local.get $3 - local.get $1 local.get $4 + local.get $5 i32.add local.tee $4 i32.ne if local.get $6 + local.get $2 local.get $4 - local.get $5 i32.add local.get $3 local.get $4 @@ -33802,7 +33810,7 @@ end local.get $0 local.get $3 - local.get $1 + local.get $5 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -33813,7 +33821,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 return end i32.const 32064 @@ -34198,21 +34206,21 @@ local.get $3 local.get $1 i32.store offset=4 - block $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex (result i32) - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15652 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load offset=12 - local.set $3 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + block $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex loop $for-loop|0 local.get $3 local.get $0 @@ -34248,7 +34256,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex end local.get $2 @@ -34263,11 +34270,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 return end i32.const 32064 @@ -34296,32 +34305,33 @@ local.get $2 local.get $1 i32.store offset=4 - block $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex (result i32) - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15652 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 1 - i32.sub - local.set $2 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.tee $2 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $0 + block $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex loop $for-loop|0 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 local.get $2 + i32.load offset=4 + local.get $0 i32.const 2 i32.shl i32.add @@ -34331,8 +34341,8 @@ i32.const 3 global.set $~argumentsLength local.get $3 - local.get $2 local.get $0 + local.get $2 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -34341,13 +34351,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex end - local.get $2 + local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $0 br $for-loop|0 end end @@ -34356,11 +34365,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 32064 @@ -34705,18 +34716,18 @@ i32.load offset=12 local.set $2 end - block $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15652 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf local.get $0 i32.load offset=12 local.tee $3 @@ -34727,6 +34738,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf end local.get $2 @@ -34770,7 +34782,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf end local.get $2 @@ -34785,11 +34796,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 return end i32.const 32064 @@ -34838,6 +34851,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -34848,13 +34862,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 local.get $0 i32.store - local.get $3 + local.get $4 local.get $1 i32.store offset=4 - local.get $3 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -34867,15 +34881,15 @@ i32.store local.get $0 i32.load offset=12 - local.tee $4 + local.tee $6 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select - local.tee $5 + local.tee $4 i32.add - local.tee $3 + local.tee $5 i32.const 268435455 i32.gt_u if @@ -34887,89 +34901,87 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 2 i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.load offset=4 - local.set $3 - local.get $4 + local.set $5 + local.get $6 i32.const 2 i32.shl - local.set $4 + local.set $6 local.get $0 i32.load offset=4 local.set $0 loop $for-loop|0 - local.get $2 - local.get $4 + local.get $3 + local.get $6 i32.lt_u if - local.get $2 local.get $3 + local.get $5 i32.add local.get $0 - local.get $2 + local.get $3 i32.add i32.load - local.tee $7 + local.tee $8 i32.store - local.get $7 + local.get $8 if - local.get $6 local.get $7 + local.get $8 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $3 i32.const 4 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end - local.get $3 - local.get $4 + local.get $5 + local.get $6 i32.add - local.set $2 + local.set $0 local.get $1 i32.load offset=4 local.set $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.set $3 - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $3 i32.lt_u if local.get $0 local.get $2 i32.add - local.get $0 local.get $1 + local.get $2 i32.add i32.load local.tee $4 i32.store local.get $4 if - local.get $6 + local.get $7 local.get $4 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end @@ -34981,7 +34993,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 return end i32.const 32064 @@ -35039,15 +35051,15 @@ local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $3 i32.store local.get $0 - local.get $3 + local.get $1 i32.store offset=12 local.get $2 i32.const 4 @@ -35057,7 +35069,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 return end i32.const 32064 @@ -35305,12 +35317,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.tee $3 - i32.load local.tee $1 + i32.load + local.tee $3 i32.store - local.get $3 - local.get $3 + local.get $1 + local.get $1 i32.const 4 i32.add local.get $2 @@ -35321,7 +35333,7 @@ i32.shl local.tee $4 call $~lib/memory/memory.copy - local.get $3 + local.get $1 local.get $4 i32.add i32.const 0 @@ -35337,7 +35349,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 return end i32.const 32064 @@ -35555,13 +35567,13 @@ i32.store local.get $0 i32.load offset=12 - local.set $3 + local.set $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -35571,9 +35583,9 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end @@ -35584,7 +35596,7 @@ i32.lt_s if (result i32) local.get $2 - local.get $3 + local.get $4 i32.add local.tee $2 i32.const 0 @@ -35594,9 +35606,9 @@ select else local.get $2 - local.get $3 + local.get $4 local.get $2 - local.get $3 + local.get $4 i32.lt_s select end @@ -35613,49 +35625,47 @@ i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.load offset=4 - local.set $4 + local.set $5 local.get $0 i32.load offset=4 local.get $1 i32.const 2 i32.shl i32.add - local.set $5 - i32.const 0 local.set $0 local.get $2 i32.const 2 i32.shl local.set $1 loop $while-continue|0 - local.get $0 local.get $1 - i32.lt_u + local.get $3 + i32.gt_u if - local.get $0 - local.get $4 + local.get $3 + local.get $5 i32.add local.get $0 - local.get $5 + local.get $3 i32.add i32.load local.tee $2 i32.store local.get $2 if - local.get $3 + local.get $4 local.get $2 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $3 i32.const 4 i32.add - local.set $0 + local.set $3 br $while-continue|0 end end @@ -35667,7 +35677,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 return end i32.const 32064 @@ -35758,30 +35768,30 @@ i32.const 0 i32.gt_s select - local.tee $1 + local.tee $5 i32.const 2 i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.load offset=4 local.get $0 i32.load offset=4 - local.tee $5 + local.tee $2 local.get $4 i32.const 2 i32.shl i32.add local.tee $6 - local.get $1 + local.get $5 i32.const 2 i32.shl call $~lib/memory/memory.copy local.get $3 - local.get $1 local.get $4 + local.get $5 i32.add local.tee $4 i32.ne @@ -35790,7 +35800,7 @@ local.get $4 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add local.get $3 local.get $4 @@ -35801,7 +35811,7 @@ end local.get $0 local.get $3 - local.get $1 + local.get $5 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -35812,7 +35822,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 return end i32.const 32064 @@ -35870,7 +35880,7 @@ local.get $4 i32.const 1 i32.sub - local.set $3 + local.set $4 loop $while-continue|0 local.get $1 local.get $5 @@ -35882,23 +35892,23 @@ i32.shl local.get $2 i32.add - local.tee $4 - i32.load local.tee $6 + i32.load + local.tee $3 i32.store + local.get $6 local.get $4 - local.get $3 local.get $1 i32.sub i32.const 2 i32.shl local.get $2 i32.add - local.tee $4 + local.tee $6 i32.load i32.store - local.get $4 local.get $6 + local.get $3 i32.store local.get $1 i32.const 1 diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 65e99ff7d4..313519ebbf 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -194,6 +194,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -738,12 +740,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -761,11 +763,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18240 @@ -773,14 +775,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -790,17 +792,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -817,116 +819,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18228 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -937,146 +866,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18228 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1232 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18228 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18228 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18228 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1504 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1504 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2617,12 +2621,13 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 memory.size diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index 41d48e4299..d177891f99 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -200,6 +200,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -744,12 +746,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -767,11 +769,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18176 @@ -779,14 +781,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -796,17 +798,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -823,116 +825,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18172 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -943,146 +872,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18172 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1232 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18172 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18172 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18172 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1504 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1504 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2442,10 +2446,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 memory.size @@ -2480,7 +2485,7 @@ i32.store i32.const 1456 global.set $~lib/rt/itcms/fromSpace - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2499,7 +2504,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2554,13 +2559,14 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $0 i32.store local.get $0 @@ -2596,12 +2602,13 @@ i32.const 95 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.load - local.tee $1 + local.tee $2 i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $1 + local.get $2 local.get $0 i32.load offset=4 local.get $0 @@ -4132,7 +4139,7 @@ i32.load offset=4 local.get $0 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1696 diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 44fa1b416f..52ba46d628 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -560,6 +560,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -1104,12 +1106,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -1127,11 +1129,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 23952 @@ -1139,14 +1141,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -1156,17 +1158,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1183,116 +1185,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 23948 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1303,146 +1232,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 23948 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1264 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 23948 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1264 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 23948 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 23948 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1536 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1536 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3576,6 +3580,7 @@ i32.store block $__inlined_func$~lib/string/String#concat local.get $0 + local.tee $2 i32.const 20 i32.sub i32.load offset=16 @@ -3594,7 +3599,7 @@ i32.shl local.tee $4 i32.add - local.tee $2 + local.tee $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3602,20 +3607,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 - local.set $2 + local.set $0 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 local.get $3 call $~lib/memory/memory.copy - local.get $2 + local.get $0 local.get $3 i32.add local.get $1 @@ -3626,7 +3631,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $2 + local.get $0 ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -4405,29 +4410,30 @@ i64.store offset=104 local.get $0 i32.load - local.tee $3 + local.tee $1 i32.const 0 i32.lt_s - local.tee $1 - local.get $3 + local.tee $3 + local.get $1 i32.const 10000 i32.ge_s i32.or if global.get $~lib/memory/__stack_pointer local.tee $4 + local.get $4 i32.const 1616 i32.const 1648 - local.get $1 + local.get $3 select - local.tee $5 + local.tee $3 i32.store - local.get $3 + local.get $1 i32.const 31 i32.shr_s - local.tee $1 + local.tee $4 local.get $1 - local.get $3 + local.get $4 i32.add i32.xor call $~lib/number/I32#toString @@ -4445,24 +4451,23 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 - local.get $5 + local.get $3 local.get $1 call $~lib/string/String.__concat local.tee $1 i32.store offset=16 else global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 call $~lib/number/I32#toString - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=8 - local.get $3 + local.get $1 i32.const 4 call $~lib/string/String#padStart local.tee $1 @@ -4564,9 +4569,10 @@ call $~lib/number/I32#toString local.set $3 global.get $~lib/memory/__stack_pointer + local.tee $4 local.get $3 i32.store offset=68 - global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1872 i32.store offset=76 local.get $3 @@ -4611,9 +4617,10 @@ call $~lib/number/I32#toString local.set $3 global.get $~lib/memory/__stack_pointer + local.tee $4 local.get $3 i32.store offset=52 - global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1872 i32.store offset=60 local.get $3 @@ -4658,9 +4665,10 @@ call $~lib/number/I32#toString local.set $3 global.get $~lib/memory/__stack_pointer + local.tee $4 local.get $3 i32.store offset=36 - global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1872 i32.store offset=44 local.get $3 @@ -4703,9 +4711,10 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $0 i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 1872 i32.store offset=28 local.get $0 @@ -4966,6 +4975,7 @@ (local $1 i64) (local $2 i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -5015,9 +5025,10 @@ call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $2 i32.store offset=32 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 1872 i32.store offset=36 local.get $2 @@ -5033,9 +5044,9 @@ local.get $2 i32.const 3520 call $~lib/string/String.__concat - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 i64.const 3600000 i64.const 0 @@ -5053,22 +5064,23 @@ i32.const 60000 i32.div_s call $~lib/number/I32#toString - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.tee $4 + local.get $2 i32.store offset=24 - global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1872 i32.store offset=32 - local.get $3 + local.get $2 i32.const 2 call $~lib/string/String#padStart - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 local.get $2 + i32.store offset=20 local.get $3 + local.get $2 call $~lib/string/String.__concat local.set $2 global.get $~lib/memory/__stack_pointer @@ -5102,9 +5114,10 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 1872 i32.store offset=16 local.get $0 @@ -5124,8 +5137,8 @@ ) (func $~lib/date/Date#toUTCString (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -5148,51 +5161,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i64.const 0 i64.store offset=16 - local.get $2 + local.get $1 i64.const 0 i64.store offset=24 - local.get $2 + local.get $1 i64.const 0 i64.store offset=32 - local.get $2 + local.get $1 i64.const 0 i64.store offset=40 - local.get $2 + local.get $1 i64.const 0 i64.store offset=48 - local.get $2 + local.get $1 i64.const 0 i64.store offset=56 - local.get $2 + local.get $1 i64.const 0 i64.store offset=64 - local.get $2 + local.get $1 i64.const 0 i64.store offset=72 - local.get $2 + local.get $1 i64.const 0 i64.store offset=80 - local.get $2 + local.get $1 i64.const 0 i64.store offset=88 i32.const 28 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.const 5616 i32.const 28 call $~lib/memory/memory.copy - local.get $2 local.get $1 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 48 @@ -5209,33 +5222,33 @@ local.tee $6 local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.set $2 + local.set $1 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 local.tee $7 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 3 i32.sub - local.get $2 + local.get $1 i32.const 0 i32.ge_s local.tee $8 select i32.const 4 i32.div_s - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 99 i32.sub local.get $8 @@ -5243,8 +5256,8 @@ i32.const 100 i32.div_s i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 399 i32.sub local.get $8 @@ -5252,17 +5265,17 @@ i32.const 400 i32.div_s i32.add - local.get $2 + local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s - local.tee $2 + local.tee $1 i32.const 0 i32.lt_s select - local.get $2 + local.get $1 i32.add local.set $8 global.get $~lib/memory/__stack_pointer @@ -5285,7 +5298,7 @@ local.get $9 i32.const 4 call $~lib/string/String#padStart - local.tee $2 + local.tee $1 i32.store offset=16 local.get $6 i32.const 0 @@ -5297,19 +5310,19 @@ i32.store offset=8 local.get $6 i32.const 1616 - local.get $2 + local.get $1 call $~lib/string/String.__concat - local.tee $2 + local.tee $1 i32.store offset=16 end global.get $~lib/memory/__stack_pointer local.get $8 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load - local.tee $1 + local.tee $4 i32.store offset=80 local.get $7 call $~lib/number/I32#toString @@ -5327,15 +5340,15 @@ global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=84 - local.get $1 + local.get $4 local.get $6 call $~lib/string/String.__concat - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 1 i32.sub i32.const 2 @@ -5343,17 +5356,17 @@ local.get $5 i32.add i32.load - local.tee $4 + local.tee $3 i32.store offset=76 - local.get $1 local.get $4 + local.get $3 call $~lib/string/String.__concat - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=68 + local.get $3 local.get $1 - local.get $2 call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer @@ -5375,32 +5388,33 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $3 + local.tee $2 i64.const 0 i64.lt_s select - local.get $3 + local.get $2 i64.add i32.wrap_i64 i32.const 3600000 i32.div_s call $~lib/number/I32#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $4 + local.get $3 i32.store offset=60 - global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1872 i32.store offset=68 - local.get $2 + local.get $3 i32.const 2 call $~lib/string/String#padStart - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=56 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer @@ -5422,32 +5436,33 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $3 + local.tee $2 i64.const 0 i64.lt_s select - local.get $3 + local.get $2 i64.add i32.wrap_i64 i32.const 60000 i32.div_s call $~lib/number/I32#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $4 + local.get $3 i32.store offset=44 - global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1872 i32.store offset=52 - local.get $2 + local.get $3 i32.const 2 call $~lib/string/String#padStart - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=40 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer @@ -5469,11 +5484,11 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $3 + local.tee $2 i64.const 0 i64.lt_s select - local.get $3 + local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -5481,9 +5496,10 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $0 i32.store offset=28 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 1872 i32.store offset=36 local.get $0 @@ -5997,7 +6013,7 @@ local.set $1 local.get $0 i32.load offset=12 - local.tee $7 + local.tee $6 i32.const 2 i32.ge_s if (result i32) @@ -6011,7 +6027,7 @@ local.get $1 call $~lib/util/string/strtol local.set $1 - local.get $7 + local.get $6 i32.const 3 i32.ge_s if (result i32) @@ -6047,9 +6063,8 @@ (func $start:std/date (local $0 i32) (local $1 i64) - (local $2 i64) + (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 36 i32.sub @@ -6081,18 +6096,16 @@ local.get $0 i32.const 0 i32.store offset=32 - i32.const 1970 - i32.const 1 - i32.const 1 - i32.const 0 - i32.const 0 - i32.const 0 - i32.const 0 - call $~lib/date/epochMillis - local.tee $1 - local.set $2 block $folding-inner0 - local.get $1 + i32.const 1970 + i32.const 1 + i32.const 1 + i32.const 0 + i32.const 0 + i32.const 0 + i32.const 0 + call $~lib/date/epochMillis + local.tee $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6100,7 +6113,7 @@ i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.eqz i32.eqz if @@ -6120,7 +6133,6 @@ i32.const 0 call $~lib/date/epochMillis local.tee $1 - local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6128,6 +6140,7 @@ i64.gt_s i32.or br_if $folding-inner0 + local.get $1 i64.eqz i32.eqz if @@ -6147,7 +6160,6 @@ i32.const 0 call $~lib/date/epochMillis local.tee $1 - local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6155,6 +6167,7 @@ i64.gt_s i32.or br_if $folding-inner0 + local.get $1 i64.eqz i32.eqz if @@ -6174,7 +6187,6 @@ i32.const 0 call $~lib/date/epochMillis local.tee $1 - local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6182,6 +6194,7 @@ i64.gt_s i32.or br_if $folding-inner0 + local.get $1 i64.const 631152000000 i64.ne if @@ -6201,7 +6214,6 @@ i32.const 0 call $~lib/date/epochMillis local.tee $1 - local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6209,6 +6221,7 @@ i64.gt_s i32.or br_if $folding-inner0 + local.get $1 i64.const -65007360000000 i64.ne if @@ -6228,7 +6241,6 @@ i32.const 1 call $~lib/date/epochMillis local.tee $1 - local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6236,6 +6248,7 @@ i64.gt_s i32.or br_if $folding-inner0 + local.get $1 i64.const 1541847600001 i64.ne if @@ -6255,7 +6268,6 @@ i32.const 0 call $~lib/date/epochMillis local.tee $1 - local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6263,6 +6275,7 @@ i64.gt_s i32.or br_if $folding-inner0 + local.get $1 i64.const 8640000000000000 i64.ne if @@ -7472,32 +7485,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 3 i32.lt_s i32.sub - local.set $4 + local.set $3 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $3 + local.get $2 i32.const 1579 i32.add i32.load8_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 3 i32.sub - local.get $4 + local.get $3 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 99 i32.sub local.get $0 @@ -7505,8 +7518,8 @@ i32.const 100 i32.div_s i32.sub - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 399 i32.sub local.get $0 @@ -7514,7 +7527,7 @@ i32.const 400 i32.div_s i32.add - local.get $4 + local.get $3 i32.add i32.add i32.add @@ -7545,32 +7558,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 3 i32.lt_s i32.sub - local.set $4 + local.set $3 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $3 + local.get $2 i32.const 1579 i32.add i32.load8_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 3 i32.sub - local.get $4 + local.get $3 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 99 i32.sub local.get $0 @@ -7578,8 +7591,8 @@ i32.const 100 i32.div_s i32.sub - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 399 i32.sub local.get $0 @@ -7587,7 +7600,7 @@ i32.const 400 i32.div_s i32.add - local.get $4 + local.get $3 i32.add i32.add i32.add @@ -7618,32 +7631,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 3 i32.lt_s i32.sub - local.set $4 + local.set $3 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $3 + local.get $2 i32.const 1579 i32.add i32.load8_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 3 i32.sub - local.get $4 + local.get $3 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 99 i32.sub local.get $0 @@ -7651,8 +7664,8 @@ i32.const 100 i32.div_s i32.sub - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 399 i32.sub local.get $0 @@ -7660,7 +7673,7 @@ i32.const 400 i32.div_s i32.add - local.get $4 + local.get $3 i32.add i32.add i32.add @@ -7691,32 +7704,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 3 i32.lt_s i32.sub - local.set $4 + local.set $3 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $3 + local.get $2 i32.const 1579 i32.add i32.load8_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 3 i32.sub - local.get $4 + local.get $3 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 99 i32.sub local.get $0 @@ -7724,8 +7737,8 @@ i32.const 100 i32.div_s i32.sub - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 399 i32.sub local.get $0 @@ -7733,7 +7746,7 @@ i32.const 400 i32.div_s i32.add - local.get $4 + local.get $3 i32.add i32.add i32.add @@ -7764,32 +7777,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 3 i32.lt_s i32.sub - local.set $4 + local.set $3 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $3 + local.get $2 i32.const 1579 i32.add i32.load8_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 3 i32.sub - local.get $4 + local.get $3 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 99 i32.sub local.get $0 @@ -7797,8 +7810,8 @@ i32.const 100 i32.div_s i32.sub - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 399 i32.sub local.get $0 @@ -7806,7 +7819,7 @@ i32.const 400 i32.div_s i32.add - local.get $4 + local.get $3 i32.add i32.add i32.add @@ -7837,32 +7850,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 3 i32.lt_s i32.sub - local.set $4 + local.set $3 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $3 + local.get $2 i32.const 1579 i32.add i32.load8_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 3 i32.sub - local.get $4 + local.get $3 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 99 i32.sub local.get $0 @@ -7870,8 +7883,8 @@ i32.const 100 i32.div_s i32.sub - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 399 i32.sub local.get $0 @@ -7879,7 +7892,7 @@ i32.const 400 i32.div_s i32.add - local.get $4 + local.get $3 i32.add i32.add i32.add @@ -7910,32 +7923,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 3 i32.lt_s i32.sub - local.set $4 + local.set $3 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $3 + local.get $2 i32.const 1579 i32.add i32.load8_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 3 i32.sub - local.get $4 + local.get $3 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 99 i32.sub local.get $0 @@ -7943,8 +7956,8 @@ i32.const 100 i32.div_s i32.sub - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 399 i32.sub local.get $0 @@ -7952,7 +7965,7 @@ i32.const 400 i32.div_s i32.add - local.get $4 + local.get $3 i32.add i32.add i32.add @@ -7983,32 +7996,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 3 i32.lt_s i32.sub - local.set $4 + local.set $3 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $3 + local.get $2 i32.const 1579 i32.add i32.load8_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 3 i32.sub - local.get $4 + local.get $3 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 99 i32.sub local.get $0 @@ -8016,8 +8029,8 @@ i32.const 100 i32.div_s i32.sub - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 399 i32.sub local.get $0 @@ -8025,7 +8038,7 @@ i32.const 400 i32.div_s i32.add - local.get $4 + local.get $3 i32.add i32.add i32.add @@ -8937,7 +8950,7 @@ global.get $~lib/memory/__stack_pointer i64.const 8640000000000000 call $~lib/date/Date#constructor - local.tee $3 + local.tee $2 i32.store local.get $0 i64.load offset=16 @@ -8951,7 +8964,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i64.load offset=16 i64.const 8640000000000000 i64.ne @@ -8975,7 +8988,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load i32.const 275760 i32.ne @@ -8999,7 +9012,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load offset=4 i32.const 9 i32.ne @@ -9023,7 +9036,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load offset=8 i32.const 13 i32.ne @@ -9039,10 +9052,10 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 local.get $0 i32.store offset=28 - local.get $4 + local.get $3 i32.const 7200 i32.store offset=32 local.get $0 @@ -9057,14 +9070,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.store offset=28 - local.get $3 + local.get $2 i32.const 7280 i32.store offset=32 local.get $0 @@ -9087,9 +9100,9 @@ global.get $~lib/memory/__stack_pointer i64.const -8639999999999999 call $~lib/date/Date#constructor - local.tee $3 + local.tee $2 i32.store offset=12 - local.get $3 + local.get $2 i32.load i32.const -271821 i32.ne @@ -9101,7 +9114,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load offset=4 i32.const 4 i32.ne @@ -9113,7 +9126,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load offset=8 i32.const 20 i32.ne @@ -9127,7 +9140,7 @@ end i64.const 86400000 i64.const 0 - local.get $3 + local.get $2 i64.load offset=16 i64.const 86400000 i64.rem_s @@ -9150,7 +9163,7 @@ end i64.const 3600000 i64.const 0 - local.get $3 + local.get $2 i64.load offset=16 i64.const 3600000 i64.rem_s @@ -9173,7 +9186,7 @@ end i64.const 60000 i64.const 0 - local.get $3 + local.get $2 i64.load offset=16 i64.const 60000 i64.rem_s @@ -9196,7 +9209,7 @@ end i64.const 1000 i64.const 0 - local.get $3 + local.get $2 i64.load offset=16 i64.const 1000 i64.rem_s @@ -9221,10 +9234,10 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 local.get $0 i32.store offset=28 - local.get $4 + local.get $3 i32.const 7360 i32.store offset=32 local.get $0 @@ -9239,14 +9252,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.store offset=28 - local.get $3 + local.get $2 i32.const 7440 i32.store offset=32 local.get $0 @@ -9388,6 +9401,10 @@ i32.shl local.tee $2 i32.eqz + local.get $1 + i32.const 1 + i32.shl + local.tee $1 local.get $0 i32.const 20 i32.sub @@ -9396,12 +9413,8 @@ i32.shr_u i32.const 1 i32.shl - local.tee $4 - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - i32.gt_u + local.tee $6 + i32.lt_u i32.or if global.get $~lib/memory/__stack_pointer @@ -9415,18 +9428,18 @@ local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store local.get $2 local.get $1 - local.get $4 + local.get $6 i32.sub - local.tee $6 + local.tee $5 i32.lt_u if - local.get $6 + local.get $5 local.get $2 - local.get $6 + local.get $5 i32.const 2 i32.sub local.get $2 @@ -9446,7 +9459,7 @@ i32.lt_u if local.get $3 - local.get $5 + local.get $4 i32.add i32.const 1872 local.get $2 @@ -9458,29 +9471,29 @@ br $while-continue|0 end end - local.get $5 + local.get $4 local.get $8 i32.add i32.const 1872 local.get $1 call $~lib/memory/memory.copy else - local.get $5 + local.get $4 i32.const 1872 - local.get $6 + local.get $5 call $~lib/memory/memory.copy end + local.get $4 local.get $5 - local.get $6 i32.add local.get $0 - local.get $4 + local.get $6 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -9535,10 +9548,9 @@ i32.gt_s select local.tee $2 - local.tee $4 + local.get $2 local.get $3 - local.get $4 - i32.lt_s + i32.gt_s select i32.const 1 i32.shl diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 5eabd47e1c..789f5bba7a 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -208,6 +208,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -752,12 +754,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -775,11 +777,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18416 @@ -787,14 +789,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -804,17 +806,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -831,116 +833,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18404 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -951,146 +880,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18404 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18404 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18404 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18404 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1730,7 +1734,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -1746,7 +1750,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 @@ -1756,26 +1760,27 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $7 i32.ne if - local.get $4 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $5 i32.load8_s local.tee $8 i32.store8 local.get $2 - local.get $4 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 + local.get $1 local.get $8 i32.extend8_s i32.const -1028477379 @@ -1787,29 +1792,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $8 i32.load @@ -1822,20 +1826,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 12 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -3064,7 +3068,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -3080,7 +3084,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 @@ -3090,26 +3094,27 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $7 i32.ne if - local.get $4 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $5 i32.load local.tee $8 i32.store local.get $2 - local.get $4 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 + local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -3120,29 +3125,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $8 i32.load @@ -3155,20 +3159,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 12 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -3377,7 +3381,6 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i32) block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -3389,16 +3392,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i64.const 0 i64.store - local.get $5 + local.get $6 i64.const 0 i64.store offset=8 - local.get $5 + local.get $6 i32.const 0 i32.store offset=16 - local.get $5 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3407,70 +3410,68 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $4 i32.store - local.get $9 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store - local.get $9 - local.set $2 - local.get $3 + local.get $5 if - local.get $2 - local.get $3 + local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 - local.get $2 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store offset=8 - local.get $3 + local.get $5 if - local.get $2 - local.get $3 + local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $2 + local.get $6 + local.get $4 i32.store loop $for-loop|1 - local.get $0 + local.get $2 i32.extend8_s i32.const 100 i32.lt_s if - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.extend8_s i32.const -1028477379 i32.mul @@ -3480,62 +3481,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load8_u - local.get $3 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|0 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 if i32.const 0 i32.const 1568 @@ -3544,19 +3545,19 @@ call $~lib/builtins/abort unreachable end + local.get $4 + local.get $2 local.get $2 - local.get $0 - local.get $0 i32.extend8_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.extend8_s i32.const -1028477379 i32.mul @@ -3566,62 +3567,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load8_u - local.get $3 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|02 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -3633,10 +3634,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.extend8_s i32.const 10 i32.add @@ -3649,14 +3650,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -3669,19 +3670,19 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 loop $for-loop|3 - local.get $0 + local.get $2 i32.extend8_s i32.const 100 i32.lt_s if - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.extend8_s i32.const -1028477379 i32.mul @@ -3691,62 +3692,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load8_u - local.get $3 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|05 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -3758,10 +3759,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.extend8_s i32.const 10 i32.add @@ -3774,19 +3775,19 @@ call $~lib/builtins/abort unreachable end + local.get $4 + local.get $2 local.get $2 - local.get $0 - local.get $0 i32.extend8_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.extend8_s i32.const -1028477379 i32.mul @@ -3796,62 +3797,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load8_u - local.get $3 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|08 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -3863,10 +3864,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.extend8_s i32.const 20 i32.add @@ -3879,14 +3880,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -3911,13 +3912,13 @@ local.tee $7 i32.const 0 i32.store - local.get $2 + local.get $4 + local.tee $9 i32.load offset=8 local.set $6 - local.get $2 + local.get $4 i32.load offset=16 - local.tee $5 - local.set $3 + local.set $5 local.get $7 i32.const 8 i32.sub @@ -3927,10 +3928,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new @@ -3948,7 +3949,7 @@ local.get $8 i32.const 0 i32.store offset=12 - local.get $3 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -3960,34 +3961,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 8 - local.get $3 + local.get $5 i32.const 8 i32.gt_u select - local.tee $2 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store offset=4 local.get $8 - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 if local.get $8 - local.get $0 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $8 - local.get $0 + local.get $2 i32.store offset=4 local.get $8 - local.get $2 + local.get $4 i32.store offset=8 local.get $8 - local.get $3 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3997,11 +3998,11 @@ local.get $8 i32.store loop $for-loop|0 + local.get $1 local.get $5 - local.get $19 - i32.gt_s + i32.lt_s if - local.get $19 + local.get $1 i32.const 12 i32.mul local.get $6 @@ -4012,31 +4013,30 @@ i32.and i32.eqz if - local.get $4 - local.tee $0 - i32.const 1 - i32.add - local.set $4 local.get $8 - local.get $0 + local.get $3 local.get $2 i32.load8_s call $~lib/array/Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 end - local.get $19 + local.get $1 i32.const 1 i32.add - local.set $19 + local.set $1 br $for-loop|0 end end local.get $8 - local.get $4 + local.get $3 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity local.get $8 - local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4048,7 +4048,7 @@ global.get $~lib/memory/__stack_pointer local.get $9 call $~lib/map/Map#values - local.tee $17 + local.tee $15 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4060,10 +4060,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 24 i32.const 6 call $~lib/rt/itcms/__new @@ -4072,12 +4072,12 @@ local.get $7 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if local.get $7 - local.get $0 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $7 @@ -4086,12 +4086,12 @@ local.get $7 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 if local.get $7 - local.get $0 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $7 @@ -4111,15 +4111,15 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $13 + local.tee $17 i32.store offset=16 loop $for-loop|4 local.get $8 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 local.tee $6 local.get $8 i32.load offset=12 @@ -4137,17 +4137,17 @@ i32.load offset=4 i32.add i32.load8_s - local.set $2 - local.get $17 + local.set $0 + local.get $15 local.get $6 call $~lib/array/Array#__get - local.set $12 + local.set $16 local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4157,24 +4157,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $2 i32.const 15 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $2 i32.const 13 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $2 i32.const 16 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.and i32.const 2 @@ -4188,7 +4188,7 @@ if local.get $3 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) @@ -4196,13 +4196,13 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $1 + local.get $2 i32.const -2 i32.and local.set $3 @@ -4228,10 +4228,10 @@ i32.load local.get $9 i32.load offset=4 - local.get $12 + local.get $16 i32.const 20 i32.sub - local.tee $1 + local.tee $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -4241,24 +4241,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 i32.const 15 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 i32.const 13 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 i32.const 16 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.and i32.const 2 @@ -4272,7 +4272,7 @@ if local.get $3 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) @@ -4280,13 +4280,13 @@ else local.get $3 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $0 + local.get $1 i32.const -2 i32.and local.set $3 @@ -4319,12 +4319,11 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 - local.set $5 local.get $7 - local.tee $1 + local.tee $3 i32.load - local.get $2 + local.get $0 + local.tee $5 i32.extend8_s i32.const -1028477379 i32.mul @@ -4335,38 +4334,38 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $16 - local.get $1 + local.tee $14 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 local.tee $0 i32.const 1 @@ -4374,7 +4373,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u local.get $5 i32.const 255 @@ -4385,29 +4384,29 @@ local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|015 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if - local.get $3 + local.get $2 local.get $5 i32.store8 offset=1 else - local.get $1 + local.get $3 i32.load offset=16 - local.get $1 + local.get $3 i32.load offset=12 i32.eq if - local.get $1 + local.get $3 local.tee $4 i32.load offset=20 - local.get $1 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -4454,44 +4453,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $13 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $2 i32.store offset=4 local.get $4 i32.load offset=8 - local.tee $19 + local.tee $0 local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $14 - local.get $3 - local.set $0 + local.set $12 + local.get $2 + local.set $1 loop $while-continue|00 - local.get $14 - local.get $19 + local.get $0 + local.get $12 i32.ne if - local.get $19 + local.get $0 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $1 local.get $0 - local.get $19 i32.load8_s local.tee $10 i32.store8 + local.get $1 local.get $0 - local.get $19 i32.load8_s offset=1 i32.store8 offset=1 - local.get $0 + local.get $1 + local.get $18 local.get $10 i32.extend8_s i32.const -1028477379 @@ -4503,25 +4503,24 @@ i32.const 668265263 i32.mul local.tee $10 - local.get $10 i32.const 15 i32.shr_u + local.get $10 i32.xor i32.const -2048144777 i32.mul local.tee $10 - local.get $10 i32.const 13 i32.shr_u + local.get $10 i32.xor i32.const -1028477379 i32.mul local.tee $10 - local.get $10 i32.const 16 i32.shr_u + local.get $10 i32.xor - local.get $18 i32.and i32.const 2 i32.shl @@ -4531,17 +4530,17 @@ i32.load i32.store offset=4 local.get $10 - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 8 i32.add - local.set $0 + local.set $1 end - local.get $19 + local.get $0 i32.const 8 i32.add - local.set $19 + local.set $0 br $while-continue|00 end end @@ -4550,27 +4549,27 @@ i32.store local.get $11 if - local.get $1 + local.get $3 local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $3 local.get $18 i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 + local.get $2 if - local.get $1 local.get $3 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 - local.get $15 + local.get $3 + local.get $13 i32.store offset=12 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4579,12 +4578,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=16 local.tee $0 i32.const 1 @@ -4593,26 +4592,26 @@ local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $1 i32.add - local.tee $3 - local.get $2 + local.tee $1 + local.get $5 i32.store8 - local.get $3 + local.get $1 local.get $5 i32.store8 offset=1 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $3 local.get $1 + local.get $3 i32.load - local.get $1 + local.get $3 i32.load offset=4 - local.get $16 + local.get $14 i32.and i32.const 2 i32.shl @@ -4621,15 +4620,15 @@ i32.load i32.store offset=4 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 - local.get $12 + local.get $17 + local.get $16 i32.const 20 i32.sub local.tee $0 @@ -4638,7 +4637,7 @@ local.get $6 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|4 end end @@ -4654,7 +4653,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $17 i32.load offset=20 i32.const 100 i32.ne @@ -4667,9 +4666,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|6 - local.get $1 + local.get $0 i32.extend8_s i32.const 50 i32.lt_s @@ -4678,8 +4677,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4728,7 +4727,7 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq @@ -4757,9 +4756,9 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#get - local.get $1 + local.get $0 i32.extend8_s i32.const 20 i32.add @@ -4773,14 +4772,14 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#delete local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4829,7 +4828,7 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq @@ -4854,10 +4853,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|6 end end @@ -4874,9 +4873,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|8 - local.get $1 + local.get $0 i32.extend8_s i32.const 50 i32.lt_s @@ -4885,8 +4884,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4935,7 +4934,7 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq @@ -4961,8 +4960,8 @@ unreachable end local.get $9 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.extend8_s i32.const 10 i32.add @@ -4971,8 +4970,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -5021,7 +5020,7 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq @@ -5050,14 +5049,14 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#delete local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -5106,7 +5105,7 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq @@ -5131,10 +5130,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|8 end end @@ -5211,7 +5210,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -5227,7 +5226,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 @@ -5237,26 +5236,27 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $7 i32.ne if - local.get $4 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $5 i32.load8_u local.tee $8 i32.store8 local.get $2 - local.get $4 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 + local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -5267,29 +5267,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $8 i32.load @@ -5302,20 +5301,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 12 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -5575,7 +5574,6 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i32) block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -5587,16 +5585,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i64.const 0 i64.store - local.get $5 + local.get $6 i64.const 0 i64.store offset=8 - local.get $5 + local.get $6 i32.const 0 i32.store offset=16 - local.get $5 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5605,71 +5603,69 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 8 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $4 i32.store - local.get $9 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store - local.get $9 - local.set $2 - local.get $3 + local.get $5 if - local.get $2 - local.get $3 + local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 - local.get $2 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store offset=8 - local.get $3 + local.get $5 if - local.get $2 - local.get $3 + local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $2 + local.get $6 + local.get $4 i32.store loop $for-loop|1 - local.get $0 + local.get $2 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.const 255 i32.and i32.const -1028477379 @@ -5680,62 +5676,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load8_u - local.get $3 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|0 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 if i32.const 0 i32.const 1568 @@ -5744,20 +5740,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 + local.get $2 local.get $2 - local.get $0 - local.get $0 i32.const 255 i32.and i32.const 10 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.const 255 i32.and i32.const -1028477379 @@ -5768,62 +5764,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load8_u - local.get $3 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|02 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -5835,10 +5831,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.const 255 i32.and i32.const 10 @@ -5852,14 +5848,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -5872,20 +5868,20 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 loop $for-loop|3 - local.get $0 + local.get $2 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.const 255 i32.and i32.const -1028477379 @@ -5896,62 +5892,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load8_u - local.get $3 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|05 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -5963,10 +5959,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.const 255 i32.and i32.const 10 @@ -5980,20 +5976,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 + local.get $2 local.get $2 - local.get $0 - local.get $0 i32.const 255 i32.and i32.const 20 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.const 255 i32.and i32.const -1028477379 @@ -6004,62 +6000,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load8_u - local.get $3 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|08 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -6071,10 +6067,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.const 255 i32.and i32.const 20 @@ -6088,14 +6084,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -6120,13 +6116,13 @@ local.tee $7 i32.const 0 i32.store - local.get $2 + local.get $4 + local.tee $9 i32.load offset=8 local.set $6 - local.get $2 + local.get $4 i32.load offset=16 - local.tee $5 - local.set $3 + local.set $5 local.get $7 i32.const 8 i32.sub @@ -6136,10 +6132,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 16 i32.const 9 call $~lib/rt/itcms/__new @@ -6157,7 +6153,7 @@ local.get $8 i32.const 0 i32.store offset=12 - local.get $3 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -6169,34 +6165,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 8 - local.get $3 + local.get $5 i32.const 8 i32.gt_u select - local.tee $2 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store offset=4 local.get $8 - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 if local.get $8 - local.get $0 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $8 - local.get $0 + local.get $2 i32.store offset=4 local.get $8 - local.get $2 + local.get $4 i32.store offset=8 local.get $8 - local.get $3 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -6206,11 +6202,11 @@ local.get $8 i32.store loop $for-loop|0 + local.get $1 local.get $5 - local.get $19 - i32.gt_s + i32.lt_s if - local.get $19 + local.get $1 i32.const 12 i32.mul local.get $6 @@ -6221,31 +6217,30 @@ i32.and i32.eqz if - local.get $4 - local.tee $0 - i32.const 1 - i32.add - local.set $4 local.get $8 - local.get $0 + local.get $3 local.get $2 i32.load8_u call $~lib/array/Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 end - local.get $19 + local.get $1 i32.const 1 i32.add - local.set $19 + local.set $1 br $for-loop|0 end end local.get $8 - local.get $4 + local.get $3 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity local.get $8 - local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6257,7 +6252,7 @@ global.get $~lib/memory/__stack_pointer local.get $9 call $~lib/map/Map#values - local.tee $17 + local.tee $15 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6269,10 +6264,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 24 i32.const 10 call $~lib/rt/itcms/__new @@ -6281,12 +6276,12 @@ local.get $7 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if local.get $7 - local.get $0 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $7 @@ -6295,12 +6290,12 @@ local.get $7 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 if local.get $7 - local.get $0 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $7 @@ -6320,15 +6315,15 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $13 + local.tee $17 i32.store offset=16 loop $for-loop|4 local.get $8 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 local.tee $6 local.get $8 i32.load offset=12 @@ -6346,17 +6341,17 @@ i32.load offset=4 i32.add i32.load8_u - local.set $2 - local.get $17 + local.set $0 + local.get $15 local.get $6 call $~lib/array/Array#__get - local.set $12 + local.set $16 local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -6367,24 +6362,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $2 i32.const 15 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $2 i32.const 13 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $2 i32.const 16 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.and i32.const 2 @@ -6398,7 +6393,7 @@ if local.get $3 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) @@ -6406,13 +6401,13 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $1 + local.get $2 i32.const -2 i32.and local.set $3 @@ -6438,10 +6433,10 @@ i32.load local.get $9 i32.load offset=4 - local.get $12 + local.get $16 i32.const 20 i32.sub - local.tee $1 + local.tee $2 i32.const 255 i32.and i32.const -1028477379 @@ -6452,24 +6447,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 i32.const 15 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 i32.const 13 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 i32.const 16 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.and i32.const 2 @@ -6483,7 +6478,7 @@ if local.get $3 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) @@ -6491,13 +6486,13 @@ else local.get $3 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $0 + local.get $1 i32.const -2 i32.and local.set $3 @@ -6530,12 +6525,11 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 - local.set $5 local.get $7 - local.tee $1 + local.tee $3 i32.load - local.get $2 + local.get $0 + local.tee $5 i32.const 255 i32.and i32.const -1028477379 @@ -6547,38 +6541,38 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $16 - local.get $1 + local.tee $14 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 local.tee $0 i32.const 1 @@ -6586,7 +6580,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u local.get $5 i32.const 255 @@ -6597,29 +6591,29 @@ local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|015 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if - local.get $3 + local.get $2 local.get $5 i32.store8 offset=1 else - local.get $1 + local.get $3 i32.load offset=16 - local.get $1 + local.get $3 i32.load offset=12 i32.eq if - local.get $1 + local.get $3 local.tee $4 i32.load offset=20 - local.get $1 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -6666,44 +6660,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $13 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $2 i32.store offset=4 local.get $4 i32.load offset=8 - local.tee $19 + local.tee $0 local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $14 - local.get $3 - local.set $0 + local.set $12 + local.get $2 + local.set $1 loop $while-continue|00 - local.get $14 - local.get $19 + local.get $0 + local.get $12 i32.ne if - local.get $19 + local.get $0 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $1 local.get $0 - local.get $19 i32.load8_u local.tee $10 i32.store8 + local.get $1 local.get $0 - local.get $19 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 + local.get $1 + local.get $18 local.get $10 i32.const -1028477379 i32.mul @@ -6714,25 +6709,24 @@ i32.const 668265263 i32.mul local.tee $10 - local.get $10 i32.const 15 i32.shr_u + local.get $10 i32.xor i32.const -2048144777 i32.mul local.tee $10 - local.get $10 i32.const 13 i32.shr_u + local.get $10 i32.xor i32.const -1028477379 i32.mul local.tee $10 - local.get $10 i32.const 16 i32.shr_u + local.get $10 i32.xor - local.get $18 i32.and i32.const 2 i32.shl @@ -6742,17 +6736,17 @@ i32.load i32.store offset=4 local.get $10 - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 8 i32.add - local.set $0 + local.set $1 end - local.get $19 + local.get $0 i32.const 8 i32.add - local.set $19 + local.set $0 br $while-continue|00 end end @@ -6761,27 +6755,27 @@ i32.store local.get $11 if - local.get $1 + local.get $3 local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $3 local.get $18 i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 + local.get $2 if - local.get $1 local.get $3 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 - local.get $15 + local.get $3 + local.get $13 i32.store offset=12 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -6790,12 +6784,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=16 local.tee $0 i32.const 1 @@ -6804,26 +6798,26 @@ local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $1 i32.add - local.tee $3 - local.get $2 + local.tee $1 + local.get $5 i32.store8 - local.get $3 + local.get $1 local.get $5 i32.store8 offset=1 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $3 local.get $1 + local.get $3 i32.load - local.get $1 + local.get $3 i32.load offset=4 - local.get $16 + local.get $14 i32.and i32.const 2 i32.shl @@ -6832,15 +6826,15 @@ i32.load i32.store offset=4 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 - local.get $12 + local.get $17 + local.get $16 i32.const 20 i32.sub local.tee $0 @@ -6849,7 +6843,7 @@ local.get $6 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|4 end end @@ -6865,7 +6859,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $17 i32.load offset=20 i32.const 100 i32.ne @@ -6878,9 +6872,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|6 - local.get $1 + local.get $0 i32.const 255 i32.and i32.const 50 @@ -6890,8 +6884,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -6941,7 +6935,7 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq @@ -6970,9 +6964,9 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#get - local.get $1 + local.get $0 i32.const 255 i32.and i32.const 20 @@ -6987,14 +6981,14 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#delete local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -7044,7 +7038,7 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq @@ -7069,10 +7063,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|6 end end @@ -7089,9 +7083,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|8 - local.get $1 + local.get $0 i32.const 255 i32.and i32.const 50 @@ -7101,8 +7095,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -7152,7 +7146,7 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq @@ -7178,8 +7172,8 @@ unreachable end local.get $9 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 255 i32.and i32.const 10 @@ -7189,8 +7183,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -7240,7 +7234,7 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq @@ -7269,14 +7263,14 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#delete local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -7326,7 +7320,7 @@ else local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq @@ -7351,10 +7345,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|8 end end @@ -7431,7 +7425,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -7447,7 +7441,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 @@ -7457,26 +7451,27 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $7 i32.ne if - local.get $4 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $5 i32.load16_s local.tee $8 i32.store16 local.get $2 - local.get $4 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 + local.get $1 local.get $8 i32.extend16_s i32.const -1028477379 @@ -7488,29 +7483,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $8 i32.load @@ -7523,20 +7517,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 12 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -7833,7 +7827,6 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i32) block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -7845,16 +7838,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i64.const 0 i64.store - local.get $5 + local.get $6 i64.const 0 i64.store offset=8 - local.get $5 + local.get $6 i32.const 0 i32.store offset=16 - local.get $5 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7863,70 +7856,68 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $4 i32.store - local.get $9 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store - local.get $9 - local.set $2 - local.get $3 + local.get $5 if - local.get $2 - local.get $3 + local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 - local.get $2 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store offset=8 - local.get $3 + local.get $5 if - local.get $2 - local.get $3 + local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $2 + local.get $6 + local.get $4 i32.store loop $for-loop|1 - local.get $0 + local.get $2 i32.extend16_s i32.const 100 i32.lt_s if - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.extend16_s i32.const -1028477379 i32.mul @@ -7936,62 +7927,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load16_u - local.get $3 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|0 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 if i32.const 0 i32.const 1568 @@ -8000,19 +7991,19 @@ call $~lib/builtins/abort unreachable end + local.get $4 + local.get $2 local.get $2 - local.get $0 - local.get $0 i32.extend16_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.extend16_s i32.const -1028477379 i32.mul @@ -8022,62 +8013,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load16_u - local.get $3 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|02 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -8089,10 +8080,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.extend16_s i32.const 10 i32.add @@ -8105,14 +8096,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -8125,19 +8116,19 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 loop $for-loop|3 - local.get $0 + local.get $2 i32.extend16_s i32.const 100 i32.lt_s if - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.extend16_s i32.const -1028477379 i32.mul @@ -8147,62 +8138,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load16_u - local.get $3 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|05 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -8214,10 +8205,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.extend16_s i32.const 10 i32.add @@ -8230,19 +8221,19 @@ call $~lib/builtins/abort unreachable end + local.get $4 + local.get $2 local.get $2 - local.get $0 - local.get $0 i32.extend16_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.extend16_s i32.const -1028477379 i32.mul @@ -8252,62 +8243,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load16_u - local.get $3 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|08 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -8319,10 +8310,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.extend16_s i32.const 20 i32.add @@ -8335,14 +8326,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -8367,13 +8358,13 @@ local.tee $7 i32.const 0 i32.store - local.get $2 + local.get $4 + local.tee $9 i32.load offset=8 local.set $6 - local.get $2 + local.get $4 i32.load offset=16 - local.tee $5 - local.set $3 + local.set $5 local.get $7 i32.const 8 i32.sub @@ -8383,10 +8374,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new @@ -8404,7 +8395,7 @@ local.get $8 i32.const 0 i32.store offset=12 - local.get $3 + local.get $5 i32.const 536870910 i32.gt_u if @@ -8416,36 +8407,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 8 - local.get $3 + local.get $5 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $2 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store offset=4 local.get $8 - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 if local.get $8 - local.get $0 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $8 - local.get $0 + local.get $2 i32.store offset=4 local.get $8 - local.get $2 + local.get $4 i32.store offset=8 local.get $8 - local.get $3 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8455,11 +8446,11 @@ local.get $8 i32.store loop $for-loop|0 + local.get $1 local.get $5 - local.get $19 - i32.gt_s + i32.lt_s if - local.get $19 + local.get $1 i32.const 12 i32.mul local.get $6 @@ -8470,31 +8461,30 @@ i32.and i32.eqz if - local.get $4 - local.tee $0 - i32.const 1 - i32.add - local.set $4 local.get $8 - local.get $0 + local.get $3 local.get $2 i32.load16_s call $~lib/array/Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 end - local.get $19 + local.get $1 i32.const 1 i32.add - local.set $19 + local.set $1 br $for-loop|0 end end local.get $8 - local.get $4 + local.get $3 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity local.get $8 - local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8506,7 +8496,7 @@ global.get $~lib/memory/__stack_pointer local.get $9 call $~lib/map/Map#values - local.tee $17 + local.tee $15 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8518,10 +8508,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 24 i32.const 13 call $~lib/rt/itcms/__new @@ -8530,12 +8520,12 @@ local.get $7 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if local.get $7 - local.get $0 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $7 @@ -8544,12 +8534,12 @@ local.get $7 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 if local.get $7 - local.get $0 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $7 @@ -8569,15 +8559,15 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $13 + local.tee $17 i32.store offset=16 loop $for-loop|4 local.get $8 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 local.tee $6 local.get $8 i32.load offset=12 @@ -8597,17 +8587,17 @@ i32.shl i32.add i32.load16_s - local.set $2 - local.get $17 + local.set $0 + local.get $15 local.get $6 call $~lib/array/Array#__get - local.set $12 + local.set $16 local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -8617,24 +8607,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $2 i32.const 15 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $2 i32.const 13 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $2 i32.const 16 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.and i32.const 2 @@ -8648,7 +8638,7 @@ if local.get $3 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) @@ -8656,13 +8646,13 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $1 + local.get $2 i32.const -2 i32.and local.set $3 @@ -8688,10 +8678,10 @@ i32.load local.get $9 i32.load offset=4 - local.get $12 + local.get $16 i32.const 20 i32.sub - local.tee $1 + local.tee $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -8701,24 +8691,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 i32.const 15 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 i32.const 13 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 i32.const 16 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.and i32.const 2 @@ -8732,7 +8722,7 @@ if local.get $3 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) @@ -8740,13 +8730,13 @@ else local.get $3 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $0 + local.get $1 i32.const -2 i32.and local.set $3 @@ -8779,12 +8769,11 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 - local.set $5 local.get $7 - local.tee $1 + local.tee $3 i32.load - local.get $2 + local.get $0 + local.tee $5 i32.extend16_s i32.const -1028477379 i32.mul @@ -8795,38 +8784,38 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $16 - local.get $1 + local.tee $14 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 local.tee $0 i32.const 1 @@ -8834,7 +8823,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u local.get $5 i32.const 65535 @@ -8845,29 +8834,29 @@ local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|015 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if - local.get $3 + local.get $2 local.get $5 i32.store16 offset=2 else - local.get $1 + local.get $3 i32.load offset=16 - local.get $1 + local.get $3 i32.load offset=12 i32.eq if - local.get $1 + local.get $3 local.tee $4 i32.load offset=20 - local.get $1 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -8914,44 +8903,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $13 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $2 i32.store offset=4 local.get $4 i32.load offset=8 - local.tee $19 + local.tee $0 local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $14 - local.get $3 - local.set $0 + local.set $12 + local.get $2 + local.set $1 loop $while-continue|00 - local.get $14 - local.get $19 + local.get $0 + local.get $12 i32.ne if - local.get $19 + local.get $0 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $1 local.get $0 - local.get $19 i32.load16_s local.tee $10 i32.store16 + local.get $1 local.get $0 - local.get $19 i32.load16_s offset=2 i32.store16 offset=2 - local.get $0 + local.get $1 + local.get $18 local.get $10 i32.extend16_s i32.const -1028477379 @@ -8963,25 +8953,24 @@ i32.const 668265263 i32.mul local.tee $10 - local.get $10 i32.const 15 i32.shr_u + local.get $10 i32.xor i32.const -2048144777 i32.mul local.tee $10 - local.get $10 i32.const 13 i32.shr_u + local.get $10 i32.xor i32.const -1028477379 i32.mul local.tee $10 - local.get $10 i32.const 16 i32.shr_u + local.get $10 i32.xor - local.get $18 i32.and i32.const 2 i32.shl @@ -8991,17 +8980,17 @@ i32.load i32.store offset=4 local.get $10 - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 8 i32.add - local.set $0 + local.set $1 end - local.get $19 + local.get $0 i32.const 8 i32.add - local.set $19 + local.set $0 br $while-continue|00 end end @@ -9010,27 +8999,27 @@ i32.store local.get $11 if - local.get $1 + local.get $3 local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $3 local.get $18 i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 + local.get $2 if - local.get $1 local.get $3 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 - local.get $15 + local.get $3 + local.get $13 i32.store offset=12 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -9039,12 +9028,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=16 local.tee $0 i32.const 1 @@ -9053,26 +9042,26 @@ local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $1 i32.add - local.tee $3 - local.get $2 + local.tee $1 + local.get $5 i32.store16 - local.get $3 + local.get $1 local.get $5 i32.store16 offset=2 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $3 local.get $1 + local.get $3 i32.load - local.get $1 + local.get $3 i32.load offset=4 - local.get $16 + local.get $14 i32.and i32.const 2 i32.shl @@ -9081,15 +9070,15 @@ i32.load i32.store offset=4 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 - local.get $12 + local.get $17 + local.get $16 i32.const 20 i32.sub local.tee $0 @@ -9098,7 +9087,7 @@ local.get $6 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|4 end end @@ -9114,7 +9103,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $17 i32.load offset=20 i32.const 100 i32.ne @@ -9127,9 +9116,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|6 - local.get $1 + local.get $0 i32.extend16_s i32.const 50 i32.lt_s @@ -9138,8 +9127,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -9188,7 +9177,7 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq @@ -9217,9 +9206,9 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#get - local.get $1 + local.get $0 i32.extend16_s i32.const 20 i32.add @@ -9233,14 +9222,14 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#delete local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -9289,7 +9278,7 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq @@ -9314,10 +9303,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|6 end end @@ -9334,9 +9323,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|8 - local.get $1 + local.get $0 i32.extend16_s i32.const 50 i32.lt_s @@ -9345,8 +9334,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -9395,7 +9384,7 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq @@ -9421,8 +9410,8 @@ unreachable end local.get $9 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.extend16_s i32.const 10 i32.add @@ -9431,8 +9420,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -9481,7 +9470,7 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq @@ -9510,14 +9499,14 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#delete local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -9566,7 +9555,7 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq @@ -9591,10 +9580,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|8 end end @@ -9671,7 +9660,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -9687,7 +9676,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 @@ -9697,26 +9686,27 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $7 i32.ne if - local.get $4 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $5 i32.load16_u local.tee $8 i32.store16 local.get $2 - local.get $4 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 + local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -9727,29 +9717,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $8 i32.load @@ -9762,20 +9751,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 12 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -10035,7 +10024,6 @@ (local $16 i32) (local $17 i32) (local $18 i32) - (local $19 i32) block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 20 @@ -10047,16 +10035,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i64.const 0 i64.store - local.get $5 + local.get $6 i64.const 0 i64.store offset=8 - local.get $5 + local.get $6 i32.const 0 i32.store offset=16 - local.get $5 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10065,71 +10053,69 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $4 i32.store - local.get $9 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store - local.get $9 - local.set $2 - local.get $3 + local.get $5 if - local.get $2 - local.get $3 + local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $4 i32.const 3 i32.store offset=4 - local.get $2 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store offset=8 - local.get $3 + local.get $5 if - local.get $2 - local.get $3 + local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $4 i32.const 4 i32.store offset=12 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 - local.get $2 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $2 + local.get $6 + local.get $4 i32.store loop $for-loop|1 - local.get $0 + local.get $2 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.const 65535 i32.and i32.const -1028477379 @@ -10140,62 +10126,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load16_u - local.get $3 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|0 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 if i32.const 0 i32.const 1568 @@ -10204,20 +10190,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 + local.get $2 local.get $2 - local.get $0 - local.get $0 i32.const 65535 i32.and i32.const 10 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.const 65535 i32.and i32.const -1028477379 @@ -10228,62 +10214,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load16_u - local.get $3 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|02 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -10295,10 +10281,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.const 65535 i32.and i32.const 10 @@ -10312,14 +10298,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -10332,20 +10318,20 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 loop $for-loop|3 - local.get $0 + local.get $2 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.const 65535 i32.and i32.const -1028477379 @@ -10356,62 +10342,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load16_u - local.get $3 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|05 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -10423,10 +10409,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.const 65535 i32.and i32.const 10 @@ -10440,20 +10426,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 + local.get $2 local.get $2 - local.get $0 - local.get $0 i32.const 65535 i32.and i32.const 20 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $2 + local.tee $5 i32.const 65535 i32.and i32.const -1028477379 @@ -10464,62 +10450,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $7 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $6 + local.get $7 if - local.get $6 + local.get $7 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $7 i32.load16_u - local.get $3 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $7 br $while-continue|08 end end i32.const 0 - local.set $6 + local.set $7 end - local.get $6 + local.get $7 i32.const 0 i32.ne i32.eqz @@ -10531,10 +10517,10 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $0 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.const 65535 i32.and i32.const 20 @@ -10548,14 +10534,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -10580,13 +10566,13 @@ local.tee $7 i32.const 0 i32.store - local.get $2 + local.get $4 + local.tee $9 i32.load offset=8 local.set $6 - local.get $2 + local.get $4 i32.load offset=16 - local.tee $5 - local.set $3 + local.set $5 local.get $7 i32.const 8 i32.sub @@ -10596,10 +10582,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 16 i32.const 15 call $~lib/rt/itcms/__new @@ -10617,7 +10603,7 @@ local.get $8 i32.const 0 i32.store offset=12 - local.get $3 + local.get $5 i32.const 536870910 i32.gt_u if @@ -10629,36 +10615,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 8 - local.get $3 + local.get $5 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $2 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store offset=4 local.get $8 - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 if local.get $8 - local.get $0 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $8 - local.get $0 + local.get $2 i32.store offset=4 local.get $8 - local.get $2 + local.get $4 i32.store offset=8 local.get $8 - local.get $3 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -10668,11 +10654,11 @@ local.get $8 i32.store loop $for-loop|0 + local.get $1 local.get $5 - local.get $19 - i32.gt_s + i32.lt_s if - local.get $19 + local.get $1 i32.const 12 i32.mul local.get $6 @@ -10683,31 +10669,30 @@ i32.and i32.eqz if - local.get $4 - local.tee $0 - i32.const 1 - i32.add - local.set $4 local.get $8 - local.get $0 + local.get $3 local.get $2 i32.load16_u call $~lib/array/Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 end - local.get $19 + local.get $1 i32.const 1 i32.add - local.set $19 + local.set $1 br $for-loop|0 end end local.get $8 - local.get $4 + local.get $3 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity local.get $8 - local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -10719,7 +10704,7 @@ global.get $~lib/memory/__stack_pointer local.get $9 call $~lib/map/Map#values - local.tee $17 + local.tee $15 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10731,10 +10716,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 24 i32.const 16 call $~lib/rt/itcms/__new @@ -10743,12 +10728,12 @@ local.get $7 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if local.get $7 - local.get $0 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $7 @@ -10757,12 +10742,12 @@ local.get $7 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 if local.get $7 - local.get $0 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $7 @@ -10782,15 +10767,15 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $13 + local.tee $17 i32.store offset=16 loop $for-loop|4 local.get $8 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 local.tee $6 local.get $8 i32.load offset=12 @@ -10810,17 +10795,17 @@ i32.shl i32.add i32.load16_u - local.set $2 - local.get $17 + local.set $0 + local.get $15 local.get $6 call $~lib/array/Array#__get - local.set $12 + local.set $16 local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -10831,24 +10816,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $2 i32.const 15 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $2 i32.const 13 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $2 i32.const 16 i32.shr_u - local.get $1 + local.get $2 i32.xor i32.and i32.const 2 @@ -10862,7 +10847,7 @@ if local.get $3 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) @@ -10870,13 +10855,13 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $1 + local.get $2 i32.const -2 i32.and local.set $3 @@ -10902,10 +10887,10 @@ i32.load local.get $9 i32.load offset=4 - local.get $12 + local.get $16 i32.const 20 i32.sub - local.tee $1 + local.tee $2 i32.const 65535 i32.and i32.const -1028477379 @@ -10916,24 +10901,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 i32.const 15 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 i32.const 13 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 i32.const 16 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.and i32.const 2 @@ -10947,7 +10932,7 @@ if local.get $3 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) @@ -10955,13 +10940,13 @@ else local.get $3 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $0 + local.get $1 i32.const -2 i32.and local.set $3 @@ -10994,12 +10979,11 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 - local.set $5 local.get $7 - local.tee $1 + local.tee $3 i32.load - local.get $2 + local.get $0 + local.tee $5 i32.const 65535 i32.and i32.const -1028477379 @@ -11011,38 +10995,38 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $16 - local.get $1 + local.tee $14 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 local.tee $0 i32.const 1 @@ -11050,7 +11034,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u local.get $5 i32.const 65535 @@ -11061,29 +11045,29 @@ local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|015 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if - local.get $3 + local.get $2 local.get $5 i32.store16 offset=2 else - local.get $1 + local.get $3 i32.load offset=16 - local.get $1 + local.get $3 i32.load offset=12 i32.eq if - local.get $1 + local.get $3 local.tee $4 i32.load offset=20 - local.get $1 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -11130,44 +11114,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $13 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $2 i32.store offset=4 local.get $4 i32.load offset=8 - local.tee $19 + local.tee $0 local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $14 - local.get $3 - local.set $0 + local.set $12 + local.get $2 + local.set $1 loop $while-continue|00 - local.get $14 - local.get $19 + local.get $0 + local.get $12 i32.ne if - local.get $19 + local.get $0 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $1 local.get $0 - local.get $19 i32.load16_u local.tee $10 i32.store16 + local.get $1 local.get $0 - local.get $19 i32.load16_u offset=2 i32.store16 offset=2 - local.get $0 + local.get $1 + local.get $18 local.get $10 i32.const -1028477379 i32.mul @@ -11178,25 +11163,24 @@ i32.const 668265263 i32.mul local.tee $10 - local.get $10 i32.const 15 i32.shr_u + local.get $10 i32.xor i32.const -2048144777 i32.mul local.tee $10 - local.get $10 i32.const 13 i32.shr_u + local.get $10 i32.xor i32.const -1028477379 i32.mul local.tee $10 - local.get $10 i32.const 16 i32.shr_u + local.get $10 i32.xor - local.get $18 i32.and i32.const 2 i32.shl @@ -11206,17 +11190,17 @@ i32.load i32.store offset=4 local.get $10 - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 8 i32.add - local.set $0 + local.set $1 end - local.get $19 + local.get $0 i32.const 8 i32.add - local.set $19 + local.set $0 br $while-continue|00 end end @@ -11225,27 +11209,27 @@ i32.store local.get $11 if - local.get $1 + local.get $3 local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $3 local.get $18 i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 + local.get $2 if - local.get $1 local.get $3 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 - local.get $15 + local.get $3 + local.get $13 i32.store offset=12 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -11254,12 +11238,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=16 local.tee $0 i32.const 1 @@ -11268,26 +11252,26 @@ local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $1 i32.add - local.tee $3 - local.get $2 + local.tee $1 + local.get $5 i32.store16 - local.get $3 + local.get $1 local.get $5 i32.store16 offset=2 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $3 local.get $1 + local.get $3 i32.load - local.get $1 + local.get $3 i32.load offset=4 - local.get $16 + local.get $14 i32.and i32.const 2 i32.shl @@ -11296,15 +11280,15 @@ i32.load i32.store offset=4 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 - local.get $12 + local.get $17 + local.get $16 i32.const 20 i32.sub local.tee $0 @@ -11313,7 +11297,7 @@ local.get $6 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|4 end end @@ -11329,7 +11313,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $17 i32.load offset=20 i32.const 100 i32.ne @@ -11342,9 +11326,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|6 - local.get $1 + local.get $0 i32.const 65535 i32.and i32.const 50 @@ -11354,8 +11338,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -11405,7 +11389,7 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq @@ -11434,9 +11418,9 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#get - local.get $1 + local.get $0 i32.const 65535 i32.and i32.const 20 @@ -11451,14 +11435,14 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#delete local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -11508,7 +11492,7 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq @@ -11533,10 +11517,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|6 end end @@ -11553,9 +11537,9 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|8 - local.get $1 + local.get $0 i32.const 65535 i32.and i32.const 50 @@ -11565,8 +11549,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -11616,7 +11600,7 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq @@ -11642,8 +11626,8 @@ unreachable end local.get $9 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 65535 i32.and i32.const 10 @@ -11653,8 +11637,8 @@ i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -11704,7 +11688,7 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq @@ -11733,14 +11717,14 @@ unreachable end local.get $9 - local.get $1 + local.get $0 call $~lib/map/Map#delete local.get $9 i32.load local.get $9 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -11790,7 +11774,7 @@ else local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq @@ -11815,10 +11799,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|8 end end @@ -12087,29 +12071,29 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i64.const 0 i64.store offset=8 - local.get $4 + local.get $2 i32.const 0 i32.store offset=16 - local.get $4 + local.get $2 call $~lib/map/Map#constructor - local.tee $5 + local.tee $4 i32.store loop $for-loop|0 - local.get $2 + local.get $3 i32.const 100 i32.lt_s if - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12118,22 +12102,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -12142,36 +12126,36 @@ i32.shl i32.add i32.load - local.set $6 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $6 + local.get $2 if - local.get $6 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $3 local.get $2 - local.get $6 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $6 + local.set $2 end - local.get $6 + local.get $2 if i32.const 0 i32.const 1568 @@ -12180,17 +12164,17 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 - local.get $2 + local.get $4 + local.get $3 + local.get $3 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12199,22 +12183,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -12223,36 +12207,36 @@ i32.shl i32.add i32.load - local.set $6 + local.set $2 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $6 + local.get $2 if - local.get $6 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $3 local.get $2 - local.get $6 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $2 br $while-continue|02 end end i32.const 0 - local.set $6 + local.set $2 end - local.get $6 + local.get $2 i32.eqz if i32.const 0 @@ -12262,10 +12246,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.const 10 i32.add i32.ne @@ -12277,14 +12261,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -12297,17 +12281,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $3 loop $for-loop|1 - local.get $2 + local.get $3 i32.const 100 i32.lt_s if - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12316,22 +12300,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -12340,36 +12324,36 @@ i32.shl i32.add i32.load - local.set $6 + local.set $2 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $6 + local.get $2 if - local.get $6 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $3 local.get $2 - local.get $6 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $4 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $2 br $while-continue|05 end end i32.const 0 - local.set $6 + local.set $2 end - local.get $6 + local.get $2 i32.eqz if i32.const 0 @@ -12379,10 +12363,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.const 10 i32.add i32.ne @@ -12394,17 +12378,17 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 - local.get $2 + local.get $4 + local.get $3 + local.get $3 i32.const 20 i32.add call $~lib/map/Map#set - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12413,22 +12397,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -12437,36 +12421,36 @@ i32.shl i32.add i32.load - local.set $6 + local.set $2 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $6 + local.get $2 if - local.get $6 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $3 local.get $2 - local.get $6 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $4 + local.get $6 i32.const -2 i32.and - local.set $6 + local.set $2 br $while-continue|08 end end i32.const 0 - local.set $6 + local.set $2 end - local.get $6 + local.get $2 i32.eqz if i32.const 0 @@ -12476,10 +12460,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $2 + local.get $3 i32.const 20 i32.add i32.ne @@ -12491,14 +12475,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|1 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -12511,7 +12495,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -12520,100 +12504,99 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store - local.get $5 + local.get $4 i32.load offset=8 - local.set $7 - local.get $2 - local.get $5 + local.set $6 + local.get $3 + local.get $4 i32.load offset=16 - local.tee $8 + local.tee $7 call $~lib/array/Array#constructor - local.tee $4 + local.tee $3 i32.store loop $for-loop|02 - local.get $3 - local.get $8 + local.get $5 + local.get $7 i32.lt_s if - local.get $3 + local.get $5 i32.const 12 i32.mul - local.get $7 + local.get $6 i32.add - local.tee $9 + local.tee $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $4 - local.get $2 - local.get $9 + local.get $3 + local.get $0 + local.get $8 i32.load call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|02 end end - local.get $4 - local.get $1 + local.get $3 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $4 - local.get $1 + local.get $3 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $4 + local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/map/Map#values - local.tee $1 + local.tee $5 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $2 + local.tee $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $3 + local.tee $7 i32.store offset=16 loop $for-loop|2 - local.get $4 + local.get $3 i32.load offset=12 - local.get $0 + local.get $1 i32.gt_s if - local.get $4 - local.get $0 - call $~lib/array/Array#__get - local.set $7 + local.get $3 local.get $1 - local.get $0 call $~lib/array/Array#__get local.set $8 local.get $5 + local.get $1 + call $~lib/array/Array#__get + local.set $9 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $7 + local.get $8 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12622,22 +12605,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 - local.get $6 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $6 - local.get $6 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $6 - local.get $6 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -12646,36 +12629,36 @@ i32.shl i32.add i32.load - local.set $6 + local.set $2 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $6 + local.get $2 if - local.get $6 + local.get $2 i32.load offset=8 - local.tee $9 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $7 - local.get $6 + local.get $8 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $9 + local.get $0 i32.const -2 i32.and - local.set $6 + local.set $2 br $while-continue|011 end end i32.const 0 - local.set $6 + local.set $2 end - local.get $6 + local.get $2 i32.eqz if i32.const 0 @@ -12685,14 +12668,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $8 + local.get $9 i32.const 20 i32.sub - local.tee $9 + local.tee $10 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12701,22 +12684,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 - local.get $6 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $6 - local.get $6 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $6 - local.get $6 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -12725,36 +12708,36 @@ i32.shl i32.add i32.load - local.set $6 + local.set $2 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $6 + local.get $2 if - local.get $6 + local.get $2 i32.load offset=8 - local.tee $10 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $9 - local.get $6 + local.get $10 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $10 + local.get $0 i32.const -2 i32.and - local.set $6 + local.set $2 br $while-continue|014 end end i32.const 0 - local.set $6 + local.set $2 end - local.get $6 + local.get $2 i32.eqz if i32.const 0 @@ -12764,25 +12747,25 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $7 - local.get $7 - call $~lib/map/Map#set - local.get $3 + local.get $6 + local.get $8 local.get $8 + call $~lib/map/Map#set + local.get $7 + local.get $9 i32.const 20 i32.sub - local.tee $6 - local.get $6 - call $~lib/map/Map#set + local.tee $0 local.get $0 + call $~lib/map/Map#set + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|2 end end - local.get $2 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -12794,7 +12777,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -12807,18 +12790,18 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i32.const 50 i32.lt_s if - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12827,22 +12810,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12851,12 +12834,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find16 loop $while-continue|017 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.const 1 @@ -12864,8 +12847,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -12873,14 +12856,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|017 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -12890,10 +12873,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $1 + local.get $4 + local.get $0 call $~lib/map/Map#get - local.get $1 + local.get $0 i32.const 20 i32.add i32.ne @@ -12905,14 +12888,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $1 + local.get $4 + local.get $0 call $~lib/map/Map#delete - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12921,22 +12904,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12945,12 +12928,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find19 loop $while-continue|020 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.const 1 @@ -12958,8 +12941,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -12967,14 +12950,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -12983,14 +12966,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|3 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -13003,18 +12986,18 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 i32.const 50 i32.lt_s if - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13023,22 +13006,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -13047,12 +13030,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find22 loop $while-continue|023 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.const 1 @@ -13060,8 +13043,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -13069,14 +13052,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|023 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -13085,17 +13068,17 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $1 - local.get $1 + local.get $4 + local.get $0 + local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13104,22 +13087,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -13128,12 +13111,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find25 loop $while-continue|026 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.const 1 @@ -13141,8 +13124,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -13150,14 +13133,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|026 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -13167,14 +13150,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $1 + local.get $4 + local.get $0 call $~lib/map/Map#delete - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13183,22 +13166,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -13207,12 +13190,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find28 loop $while-continue|029 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.const 1 @@ -13220,8 +13203,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -13229,14 +13212,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|029 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -13245,14 +13228,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end - local.get $5 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -13264,9 +13247,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 call $~lib/map/Map#clear - local.get $5 + local.get $4 i32.load offset=20 if i32.const 0 @@ -13324,7 +13307,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -13340,7 +13323,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 @@ -13350,26 +13333,27 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $7 i32.ne if - local.get $4 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $5 i32.load local.tee $8 i32.store local.get $2 - local.get $4 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 + local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -13380,29 +13364,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $8 i32.load @@ -13415,20 +13398,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 12 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -13688,16 +13671,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i64.const 0 i64.store offset=8 - local.get $3 + local.get $1 i32.const 0 i32.store offset=16 - local.get $3 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13706,66 +13689,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 24 i32.const 17 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $3 i32.store - local.get $11 + local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 if - local.get $11 - local.get $4 + local.get $3 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $3 i32.const 3 i32.store offset=4 - local.get $11 + local.get $3 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store offset=8 - local.get $4 + local.get $5 if - local.get $11 - local.get $4 + local.get $3 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $3 i32.const 4 i32.store offset=12 - local.get $11 + local.get $3 i32.const 0 i32.store offset=16 - local.get $11 + local.get $3 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $3 - local.get $11 i32.store loop $for-loop|0 - local.get $2 + local.get $4 i32.const 100 i32.lt_u if - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 - local.get $2 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13774,22 +13757,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -13798,36 +13781,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $3 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 local.get $4 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $5 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 if i32.const 0 i32.const 1568 @@ -13836,17 +13819,17 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $2 - local.get $2 + local.get $3 + local.get $4 + local.get $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 - local.get $2 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13855,22 +13838,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -13879,36 +13862,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $3 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 local.get $4 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + local.get $5 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 i32.eqz if i32.const 0 @@ -13918,10 +13901,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $2 + local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.const 10 i32.add i32.ne @@ -13933,14 +13916,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end - local.get $11 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -13953,17 +13936,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|1 - local.get $2 + local.get $4 i32.const 100 i32.lt_u if - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 - local.get $2 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13972,22 +13955,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -13996,36 +13979,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $3 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 local.get $4 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $3 + local.get $5 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 i32.eqz if i32.const 0 @@ -14035,10 +14018,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $2 + local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.const 10 i32.add i32.ne @@ -14050,17 +14033,17 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $2 - local.get $2 + local.get $3 + local.get $4 + local.get $4 i32.const 20 i32.add call $~lib/map/Map#set - local.get $11 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 - local.get $2 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14069,22 +14052,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -14093,36 +14076,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $3 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 local.get $4 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $3 + local.get $5 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 i32.eqz if i32.const 0 @@ -14132,10 +14115,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $2 + local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $2 + local.get $4 i32.const 20 i32.add i32.ne @@ -14147,14 +14130,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|1 end end - local.get $11 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -14176,16 +14159,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $7 i32.const 0 i32.store - local.get $11 + local.get $3 + local.tee $1 i32.load offset=8 - local.set $6 - local.get $11 - i32.load offset=16 - local.set $7 + local.set $8 local.get $3 + i32.load offset=16 + local.set $3 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14194,28 +14178,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $5 i32.store - local.get $2 + local.get $5 i32.const 0 i32.store - local.get $2 + local.get $5 i32.const 0 i32.store offset=4 - local.get $2 + local.get $5 i32.const 0 i32.store offset=8 - local.get $2 + local.get $5 i32.const 0 i32.store offset=12 - local.get $7 + local.get $3 i32.const 268435455 i32.gt_u if @@ -14227,97 +14211,96 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.const 8 - local.get $7 + local.get $3 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $8 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $10 i32.store offset=4 - local.get $2 - local.get $9 + local.get $5 + local.get $10 i32.store - local.get $9 + local.get $10 if - local.get $2 - local.get $9 + local.get $5 + local.get $10 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 - local.get $9 + local.get $5 + local.get $10 i32.store offset=4 - local.get $2 - local.get $8 + local.get $5 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $5 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $2 + local.get $7 + local.get $5 i32.store loop $for-loop|02 - local.get $5 - local.get $7 - i32.lt_s + local.get $3 + local.get $6 + i32.gt_s if - local.get $5 + local.get $6 i32.const 12 i32.mul - local.get $6 + local.get $8 i32.add - local.tee $8 + local.tee $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $2 - local.get $3 - local.get $8 + local.get $5 + local.get $0 + local.get $7 i32.load call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|02 end end - local.get $2 - local.get $1 + local.get $5 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 - local.get $1 + local.get $5 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $4 - local.get $2 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $1 call $~lib/map/Map#values - local.tee $7 + local.tee $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14380,17 +14363,17 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $2 + local.get $5 i32.load offset=12 - local.get $0 + local.get $2 i32.gt_s if - local.get $0 - local.tee $1 local.get $2 + local.tee $3 + local.get $5 i32.load offset=12 i32.ge_u if @@ -14401,23 +14384,23 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $5 i32.load offset=4 - local.get $1 + local.get $3 i32.const 2 i32.shl i32.add i32.load - local.set $3 - local.get $7 - local.get $1 + local.set $13 + local.get $9 + local.get $3 call $~lib/array/Array#__get - local.set $8 - local.get $11 + local.set $10 + local.get $1 i32.load - local.get $11 + local.get $1 i32.load offset=4 - local.get $3 + local.get $13 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14450,36 +14433,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $0 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $4 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $4 + local.get $13 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $4 + local.set $0 br $while-continue|011 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 i32.eqz if i32.const 0 @@ -14489,14 +14472,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $1 i32.load - local.get $11 + local.get $1 i32.load offset=4 - local.get $8 + local.get $10 i32.const 20 i32.sub - local.tee $0 + local.tee $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14505,22 +14488,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -14529,36 +14512,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $4 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $2 local.get $0 - local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $5 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 i32.eqz if i32.const 0 @@ -14581,8 +14564,7 @@ i32.store local.get $12 i32.load - local.get $3 - local.tee $4 + local.get $13 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14592,25 +14574,25 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $6 + local.tee $8 local.get $12 i32.load offset=4 i32.and @@ -14618,39 +14600,39 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find15 loop $while-continue|016 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $13 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $5 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|016 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if - local.get $0 - local.get $3 + local.get $2 + local.get $13 i32.store offset=4 else local.get $12 @@ -14679,7 +14661,7 @@ i32.const 1 i32.or end - local.set $13 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14693,14 +14675,14 @@ i64.const 0 i64.store local.get $0 - local.get $13 + local.get $14 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $14 + local.tee $15 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -14708,7 +14690,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -14716,36 +14698,37 @@ i32.store offset=4 local.get $12 i32.load offset=8 - local.tee $10 + local.tee $2 local.get $12 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $15 + local.set $6 local.get $4 local.set $0 loop $while-continue|00 - local.get $10 - local.get $15 + local.get $2 + local.get $6 i32.ne if - local.get $10 + local.get $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $10 + local.get $2 i32.load local.tee $16 i32.store local.get $0 - local.get $10 + local.get $2 i32.load offset=4 i32.store offset=4 local.get $0 + local.get $14 local.get $16 i32.const -1028477379 i32.mul @@ -14756,29 +14739,28 @@ i32.const 668265263 i32.mul local.tee $16 + local.get $16 i32.const 15 i32.shr_u - local.get $16 i32.xor i32.const -2048144777 i32.mul local.tee $16 + local.get $16 i32.const 13 i32.shr_u - local.get $16 i32.xor i32.const -1028477379 i32.mul local.tee $16 + local.get $16 i32.const 16 i32.shr_u - local.get $16 i32.xor - local.get $13 i32.and i32.const 2 i32.shl - local.get $14 + local.get $15 i32.add local.tee $16 i32.load @@ -14791,24 +14773,24 @@ i32.add local.set $0 end - local.get $10 + local.get $2 i32.const 12 i32.add - local.set $10 + local.set $2 br $while-continue|00 end end local.get $12 - local.get $14 + local.get $15 i32.store - local.get $14 + local.get $15 if local.get $12 - local.get $14 + local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $12 - local.get $13 + local.get $14 i32.store offset=4 local.get $12 local.get $4 @@ -14820,7 +14802,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $12 - local.get $5 + local.get $7 i32.store offset=12 local.get $12 local.get $12 @@ -14839,20 +14821,20 @@ local.get $12 local.get $12 i32.load offset=16 - local.tee $4 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $4 + local.get $2 i32.const 12 i32.mul local.get $0 i32.add local.tee $0 - local.get $3 + local.get $13 i32.store local.get $0 - local.get $3 + local.get $13 i32.store offset=4 local.get $12 local.get $12 @@ -14865,15 +14847,15 @@ i32.load local.get $12 i32.load offset=4 - local.get $6 + local.get $8 i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $2 i32.load i32.store offset=8 - local.get $3 + local.get $2 local.get $0 i32.store end @@ -14881,17 +14863,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $8 + local.get $11 + local.get $10 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|2 end end @@ -14907,7 +14889,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -14920,17 +14902,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 loop $for-loop|3 - local.get $0 + local.get $2 i32.const 50 i32.lt_u if - local.get $11 + local.get $1 i32.load - local.get $11 + local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14939,22 +14921,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -14963,36 +14945,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $4 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $2 + local.get $4 if - local.get $2 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $2 + local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $1 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $4 br $while-continue|019 end end i32.const 0 - local.set $2 + local.set $4 end - local.get $2 + local.get $4 i32.eqz if i32.const 0 @@ -15002,10 +14984,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $0 + local.get $1 + local.get $2 call $~lib/map/Map#get - local.get $0 + local.get $2 i32.const 20 i32.add i32.ne @@ -15017,14 +14999,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $0 + local.get $1 + local.get $2 call $~lib/map/Map#delete - local.get $11 + local.get $1 i32.load - local.get $11 + local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15033,22 +15015,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -15057,36 +15039,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $4 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $2 + local.get $4 if - local.get $2 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $2 + local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $1 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $4 br $while-continue|022 end end i32.const 0 - local.set $2 + local.set $4 end - local.get $2 + local.get $4 if i32.const 0 i32.const 1568 @@ -15095,14 +15077,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|3 end end - local.get $11 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -15115,17 +15097,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 loop $for-loop|4 - local.get $0 + local.get $2 i32.const 50 i32.lt_u if - local.get $11 + local.get $1 i32.load - local.get $11 + local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15134,22 +15116,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -15158,36 +15140,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $4 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $2 + local.get $4 if - local.get $2 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $2 + local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $1 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $4 br $while-continue|025 end end i32.const 0 - local.set $2 + local.set $4 end - local.get $2 + local.get $4 if i32.const 0 i32.const 1568 @@ -15196,17 +15178,17 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $0 - local.get $0 + local.get $1 + local.get $2 + local.get $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $11 + local.get $1 i32.load - local.get $11 + local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15215,22 +15197,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -15239,36 +15221,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $4 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $2 + local.get $4 if - local.get $2 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $2 + local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $1 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $4 br $while-continue|028 end end i32.const 0 - local.set $2 + local.set $4 end - local.get $2 + local.get $4 i32.eqz if i32.const 0 @@ -15278,14 +15260,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $0 + local.get $1 + local.get $2 call $~lib/map/Map#delete - local.get $11 + local.get $1 i32.load - local.get $11 + local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15294,22 +15276,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -15318,36 +15300,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $4 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $2 + local.get $4 if - local.get $2 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $2 + local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $1 + local.get $0 i32.const -2 i32.and - local.set $2 + local.set $4 br $while-continue|031 end end i32.const 0 - local.set $2 + local.set $4 end - local.get $2 + local.get $4 if i32.const 0 i32.const 1568 @@ -15356,14 +15338,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|4 end end - local.get $11 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -15375,9 +15357,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $1 call $~lib/map/Map#clear - local.get $11 + local.get $1 i32.load offset=20 if i32.const 0 @@ -15520,7 +15502,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -15536,7 +15518,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 4 @@ -15546,23 +15528,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $8 i32.ne if - local.get $4 + local.get $5 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $5 i64.load local.tee $6 i64.store local.get $2 - local.get $4 + local.get $5 i32.load offset=8 i32.store offset=8 local.get $2 @@ -15610,7 +15592,7 @@ i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $9 i32.load @@ -15623,20 +15605,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 16 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -15969,8 +15951,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i64) + (local $3 i64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -15994,16 +15976,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16012,63 +15994,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 24 i32.const 20 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $10 i32.store - local.get $5 + local.get $10 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 if - local.get $5 - local.get $6 + local.get $10 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 + local.get $10 i32.const 3 i32.store offset=4 - local.get $5 + local.get $10 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $4 i32.store offset=8 - local.get $6 + local.get $4 if - local.get $5 - local.get $6 + local.get $10 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 + local.get $10 i32.const 4 i32.store offset=12 - local.get $5 + local.get $10 i32.const 0 i32.store offset=16 - local.get $5 + local.get $10 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $1 + local.get $10 i32.store loop $for-loop|0 - local.get $4 + local.get $3 i64.const 100 i64.lt_s if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16078,15 +16060,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 - local.get $4 + local.get $10 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16097,10 +16079,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -16113,14 +16095,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|0 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -16133,14 +16115,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 + local.get $3 i64.const 100 i64.lt_s - if - local.get $5 - local.get $4 + if + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16151,10 +16133,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -16167,15 +16149,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 - local.get $4 + local.get $10 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16186,10 +16168,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -16202,14 +16184,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|1 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -16222,7 +16204,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16231,16 +16213,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $6 i32.const 0 i32.store - local.get $5 + local.get $10 i32.load offset=8 local.set $7 - local.get $5 + local.get $10 i32.load offset=16 local.set $8 - local.get $2 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -16249,25 +16231,25 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $1 i64.const 0 i64.store - local.get $9 + local.get $1 i32.const 16 i32.const 21 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $1 i32.store - local.get $10 + local.get $1 i32.const 0 i32.store - local.get $10 + local.get $1 i32.const 0 i32.store offset=4 - local.get $10 + local.get $1 i32.const 0 i32.store offset=8 - local.get $10 + local.get $1 i32.const 0 i32.store offset=12 local.get $8 @@ -16295,82 +16277,81 @@ call $~lib/rt/itcms/__new local.tee $11 i32.store offset=4 - local.get $10 + local.get $1 local.get $11 i32.store local.get $11 if - local.get $10 + local.get $1 local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 + local.get $1 local.get $11 i32.store offset=4 - local.get $10 + local.get $1 local.get $9 i32.store offset=8 - local.get $10 + local.get $1 local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $10 + local.get $6 + local.get $1 i32.store loop $for-loop|02 - local.get $3 + local.get $2 local.get $8 i32.lt_s if - local.get $3 + local.get $2 i32.const 4 i32.shl local.get $7 i32.add - local.tee $9 + local.tee $6 i32.load offset=12 i32.const 1 i32.and i32.eqz if + local.get $1 + local.get $0 + local.get $6 + i64.load + call $~lib/array/Array#__set local.get $0 - local.tee $2 i32.const 1 i32.add local.set $0 - local.get $10 - local.get $2 - local.get $9 - i64.load - call $~lib/array/Array#__set end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|02 end end - local.get $10 + local.get $1 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $10 + local.get $4 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $10 call $~lib/map/Map#values local.tee $11 i32.store offset=8 @@ -16438,16 +16419,15 @@ local.tee $6 i32.store offset=16 loop $for-loop|2 - local.get $10 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $5 i32.gt_s if local.get $1 - local.tee $2 - local.get $10 i32.load offset=12 - i32.ge_u + local.get $5 + i32.le_u if i32.const 1248 i32.const 1728 @@ -16456,20 +16436,20 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $1 i32.load offset=4 - local.get $2 + local.get $5 i32.const 3 i32.shl i32.add i64.load - local.set $4 + local.set $3 local.get $11 - local.get $2 + local.get $5 call $~lib/array/Array#__get local.set $7 - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16480,7 +16460,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $10 local.get $7 i32.const 20 i32.sub @@ -16508,7 +16488,7 @@ i32.store local.get $12 i32.load - local.get $4 + local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16518,7 +16498,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $4 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16556,39 +16536,39 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=16 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $3 + local.get $0 i64.load i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 - local.get $4 + local.get $0 + local.get $3 i64.store offset=8 else local.get $12 @@ -16650,37 +16630,37 @@ i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=4 local.get $12 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $12 i32.load offset=16 i32.const 24 i32.mul i32.add local.set $15 - local.get $1 + local.get $2 local.set $0 loop $while-continue|00 - local.get $3 + local.get $4 local.get $15 i32.ne if - local.get $3 + local.get $4 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $3 + local.get $4 i64.load local.tee $16 i64.store local.get $0 - local.get $3 + local.get $4 i64.load offset=8 i64.store offset=8 local.get $0 @@ -16741,10 +16721,10 @@ i32.add local.set $0 end - local.get $3 + local.get $4 i32.const 24 i32.add - local.set $3 + local.set $4 br $while-continue|00 end end @@ -16761,12 +16741,12 @@ local.get $8 i32.store offset=4 local.get $12 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 if local.get $12 - local.get $1 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $12 @@ -16789,20 +16769,20 @@ local.get $12 local.get $12 i32.load offset=16 - local.tee $1 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $1 + local.get $2 i32.const 24 i32.mul local.get $0 i32.add local.tee $0 - local.get $4 + local.get $3 i64.store local.get $0 - local.get $4 + local.get $3 i64.store offset=8 local.get $12 local.get $12 @@ -16820,10 +16800,10 @@ i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=16 - local.get $1 + local.get $2 local.get $0 i32.store end @@ -16838,10 +16818,10 @@ local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $2 + local.get $5 i32.const 1 i32.add - local.set $1 + local.set $5 br $for-loop|2 end end @@ -16870,14 +16850,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 i64.const 50 i64.lt_s if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16888,10 +16868,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -16904,11 +16884,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#delete - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16918,14 +16898,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|3 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 50 i32.ne @@ -16938,14 +16918,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|4 - local.get $4 + local.get $3 i64.const 50 i64.lt_s if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16955,15 +16935,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 - local.get $4 + local.get $10 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16974,11 +16954,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#delete - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16988,14 +16968,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|4 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 50 i32.ne @@ -17007,9 +16987,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $10 call $~lib/map/Map#clear - local.get $5 + local.get $10 i32.load offset=20 if i32.const 0 @@ -17152,7 +17132,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -17168,7 +17148,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 4 @@ -17178,23 +17158,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $8 i32.ne if - local.get $4 + local.get $5 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $5 i64.load local.tee $6 i64.store local.get $2 - local.get $4 + local.get $5 i32.load offset=8 i32.store offset=8 local.get $2 @@ -17242,7 +17222,7 @@ i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $9 i32.load @@ -17255,20 +17235,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 16 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -17525,8 +17505,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i64) + (local $3 i64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -17550,16 +17530,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17568,63 +17548,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 24 i32.const 23 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $10 i32.store - local.get $5 + local.get $10 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 if - local.get $5 - local.get $6 + local.get $10 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 + local.get $10 i32.const 3 i32.store offset=4 - local.get $5 + local.get $10 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $4 i32.store offset=8 - local.get $6 + local.get $4 if - local.get $5 - local.get $6 + local.get $10 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 + local.get $10 i32.const 4 i32.store offset=12 - local.get $5 + local.get $10 i32.const 0 i32.store offset=16 - local.get $5 + local.get $10 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $1 + local.get $10 i32.store loop $for-loop|0 - local.get $4 + local.get $3 i64.const 100 i64.lt_u if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -17634,15 +17614,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 - local.get $4 + local.get $10 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17653,10 +17633,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -17669,14 +17649,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|0 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -17689,14 +17669,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 + local.get $3 i64.const 100 i64.lt_u if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17707,10 +17687,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -17723,15 +17703,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 - local.get $4 + local.get $10 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17742,10 +17722,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -17758,14 +17738,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|1 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -17778,7 +17758,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17787,16 +17767,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $6 i32.const 0 i32.store - local.get $5 + local.get $10 i32.load offset=8 local.set $7 - local.get $5 + local.get $10 i32.load offset=16 local.set $8 - local.get $2 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17805,25 +17785,25 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $1 i64.const 0 i64.store - local.get $9 + local.get $1 i32.const 16 i32.const 24 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $1 i32.store - local.get $10 + local.get $1 i32.const 0 i32.store - local.get $10 + local.get $1 i32.const 0 i32.store offset=4 - local.get $10 + local.get $1 i32.const 0 i32.store offset=8 - local.get $10 + local.get $1 i32.const 0 i32.store offset=12 local.get $8 @@ -17851,82 +17831,81 @@ call $~lib/rt/itcms/__new local.tee $11 i32.store offset=4 - local.get $10 + local.get $1 local.get $11 i32.store local.get $11 if - local.get $10 + local.get $1 local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 + local.get $1 local.get $11 i32.store offset=4 - local.get $10 + local.get $1 local.get $9 i32.store offset=8 - local.get $10 + local.get $1 local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $10 + local.get $6 + local.get $1 i32.store loop $for-loop|02 - local.get $3 + local.get $2 local.get $8 i32.lt_s if - local.get $3 + local.get $2 i32.const 4 i32.shl local.get $7 i32.add - local.tee $9 + local.tee $6 i32.load offset=12 i32.const 1 i32.and i32.eqz if + local.get $1 + local.get $0 + local.get $6 + i64.load + call $~lib/array/Array#__set local.get $0 - local.tee $2 i32.const 1 i32.add local.set $0 - local.get $10 - local.get $2 - local.get $9 - i64.load - call $~lib/array/Array#__set end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|02 end end - local.get $10 + local.get $1 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $10 + local.get $4 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $10 call $~lib/map/Map#values local.tee $11 i32.store offset=8 @@ -17994,16 +17973,15 @@ local.tee $6 i32.store offset=16 loop $for-loop|2 - local.get $10 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $5 i32.gt_s if local.get $1 - local.tee $2 - local.get $10 i32.load offset=12 - i32.ge_u + local.get $5 + i32.le_u if i32.const 1248 i32.const 1728 @@ -18012,20 +17990,20 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $1 i32.load offset=4 - local.get $2 + local.get $5 i32.const 3 i32.shl i32.add i64.load - local.set $4 + local.set $3 local.get $11 - local.get $2 + local.get $5 call $~lib/array/Array#__get local.set $7 - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -18036,7 +18014,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $10 local.get $7 i32.const 20 i32.sub @@ -18064,7 +18042,7 @@ i32.store local.get $12 i32.load - local.get $4 + local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18074,7 +18052,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $4 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18112,39 +18090,39 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=16 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $3 + local.get $0 i64.load i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 - local.get $4 + local.get $0 + local.get $3 i64.store offset=8 else local.get $12 @@ -18206,37 +18184,37 @@ i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=4 local.get $12 i32.load offset=8 - local.tee $3 + local.tee $4 local.get $12 i32.load offset=16 i32.const 24 i32.mul i32.add local.set $15 - local.get $1 + local.get $2 local.set $0 loop $while-continue|00 - local.get $3 + local.get $4 local.get $15 i32.ne if - local.get $3 + local.get $4 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $3 + local.get $4 i64.load local.tee $16 i64.store local.get $0 - local.get $3 + local.get $4 i64.load offset=8 i64.store offset=8 local.get $0 @@ -18297,10 +18275,10 @@ i32.add local.set $0 end - local.get $3 + local.get $4 i32.const 24 i32.add - local.set $3 + local.set $4 br $while-continue|00 end end @@ -18317,12 +18295,12 @@ local.get $8 i32.store offset=4 local.get $12 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 if local.get $12 - local.get $1 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $12 @@ -18345,20 +18323,20 @@ local.get $12 local.get $12 i32.load offset=16 - local.tee $1 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $1 + local.get $2 i32.const 24 i32.mul local.get $0 i32.add local.tee $0 - local.get $4 + local.get $3 i64.store local.get $0 - local.get $4 + local.get $3 i64.store offset=8 local.get $12 local.get $12 @@ -18376,10 +18354,10 @@ i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=16 - local.get $1 + local.get $2 local.get $0 i32.store end @@ -18394,10 +18372,10 @@ local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $2 + local.get $5 i32.const 1 i32.add - local.set $1 + local.set $5 br $for-loop|2 end end @@ -18426,14 +18404,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 i64.const 50 i64.lt_u if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -18444,10 +18422,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -18460,11 +18438,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#delete - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18474,14 +18452,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|3 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 50 i32.ne @@ -18494,14 +18472,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|4 - local.get $4 + local.get $3 i64.const 50 i64.lt_u if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18511,15 +18489,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 - local.get $4 + local.get $10 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -18530,11 +18508,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#delete - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18544,14 +18522,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|4 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 50 i32.ne @@ -18563,9 +18541,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $10 call $~lib/map/Map#clear - local.get $5 + local.get $10 i32.load offset=20 if i32.const 0 @@ -18624,7 +18602,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -18640,7 +18618,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 @@ -18650,26 +18628,27 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $7 i32.ne if - local.get $4 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $5 f32.load local.tee $8 f32.store local.get $2 - local.get $4 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 + local.get $1 local.get $8 i32.reinterpret_f32 i32.const -1028477379 @@ -18681,29 +18660,28 @@ i32.const 668265263 i32.mul local.tee $9 - local.get $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 - local.get $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 - local.get $9 i32.const 16 i32.shr_u + local.get $9 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $9 i32.load @@ -18716,20 +18694,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 12 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -18965,16 +18943,16 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f32) (local $5 i32) (local $6 i32) - (local $7 f32) + (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) (local $12 i32) - (local $13 i32) + (local $13 f32) (local $14 i32) (local $15 i32) (local $16 i32) @@ -18989,16 +18967,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -19007,66 +18985,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.const 26 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $3 i32.store - local.get $13 + local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 if - local.get $13 - local.get $1 + local.get $3 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $13 + local.get $3 i32.const 3 i32.store offset=4 - local.get $13 + local.get $3 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $1 + local.get $2 if - local.get $13 - local.get $1 + local.get $3 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $13 + local.get $3 i32.const 4 i32.store offset=12 - local.get $13 + local.get $3 i32.const 0 i32.store offset=16 - local.get $13 + local.get $3 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $13 + local.get $1 + local.get $3 i32.store loop $for-loop|0 - local.get $7 + local.get $4 f32.const 100 f32.lt if - local.get $13 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $7 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19100,36 +19078,36 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $7 - local.get $6 + local.get $4 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $2 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 if i32.const 0 i32.const 1568 @@ -19138,18 +19116,18 @@ call $~lib/builtins/abort unreachable end - local.get $13 - local.get $7 - local.get $7 + local.get $3 + local.get $4 + local.get $4 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $13 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $7 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19183,36 +19161,36 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $7 - local.get $6 + local.get $4 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $1 + local.get $2 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 i32.eqz if i32.const 0 @@ -19222,10 +19200,10 @@ call $~lib/builtins/abort unreachable end - local.get $13 - local.get $7 + local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $7 + local.get $4 i32.trunc_f32_s i32.const 10 i32.add @@ -19238,14 +19216,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $4 f32.const 1 f32.add - local.set $7 + local.set $4 br $for-loop|0 end end - local.get $13 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -19258,17 +19236,17 @@ unreachable end f32.const 0 - local.set $7 + local.set $4 loop $for-loop|1 - local.get $7 + local.get $4 f32.const 100 f32.lt if - local.get $13 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $7 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19302,36 +19280,36 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $7 - local.get $6 + local.get $4 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $1 + local.get $2 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 i32.eqz if i32.const 0 @@ -19341,10 +19319,10 @@ call $~lib/builtins/abort unreachable end - local.get $13 - local.get $7 + local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $7 + local.get $4 i32.trunc_f32_s i32.const 10 i32.add @@ -19357,18 +19335,18 @@ call $~lib/builtins/abort unreachable end - local.get $13 - local.get $7 - local.get $7 + local.get $3 + local.get $4 + local.get $4 i32.trunc_f32_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $13 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $7 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19402,36 +19380,36 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $7 - local.get $6 + local.get $4 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $1 + local.get $2 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 i32.eqz if i32.const 0 @@ -19441,10 +19419,10 @@ call $~lib/builtins/abort unreachable end - local.get $13 - local.get $7 + local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $7 + local.get $4 i32.trunc_f32_s i32.const 20 i32.add @@ -19457,14 +19435,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $4 f32.const 1 f32.add - local.set $7 + local.set $4 br $for-loop|1 end end - local.get $13 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -19477,7 +19455,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -19486,16 +19464,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $1 i32.const 0 i32.store - local.get $13 + local.get $3 i32.load offset=8 - local.set $6 - local.get $13 + local.set $7 + local.get $3 i32.load offset=16 - local.set $3 - local.get $8 + local.set $8 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -19504,28 +19482,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 16 i32.const 27 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 0 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.store offset=8 - local.get $4 + local.get $2 i32.const 0 i32.store offset=12 - local.get $3 + local.get $8 i32.const 268435455 i32.gt_u if @@ -19537,69 +19515,69 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.const 8 - local.get $3 + local.get $8 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $2 + local.tee $10 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $11 i32.store offset=4 - local.get $4 - local.get $1 + local.get $2 + local.get $11 i32.store - local.get $1 + local.get $11 if - local.get $4 - local.get $1 + local.get $2 + local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $1 + local.get $2 + local.get $11 i32.store offset=4 - local.get $4 local.get $2 + local.get $10 i32.store offset=8 - local.get $4 - local.get $3 + local.get $2 + local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $4 + local.get $1 + local.get $2 i32.store loop $for-loop|02 - local.get $3 - local.get $10 - i32.gt_s + local.get $5 + local.get $8 + i32.lt_s if - local.get $10 + local.get $5 i32.const 12 i32.mul - local.get $6 + local.get $7 i32.add - local.tee $1 + local.tee $10 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 - f32.load - local.set $7 - local.get $5 + local.get $0 local.tee $1 i32.const 1 i32.add - local.set $5 - local.get $4 + local.set $0 + local.get $10 + f32.load + local.set $4 + local.get $2 i32.load offset=12 local.get $1 i32.le_u @@ -19615,53 +19593,53 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $10 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity - local.get $4 local.get $2 + local.get $10 i32.store offset=12 end - local.get $4 + local.get $2 i32.load offset=4 local.get $1 i32.const 2 i32.shl i32.add - local.get $7 + local.get $4 f32.store end - local.get $10 + local.get $5 i32.const 1 i32.add - local.set $10 + local.set $5 br $for-loop|02 end end - local.get $4 - local.get $5 + local.get $2 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $4 - local.get $5 + local.get $2 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $4 + local.get $6 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $3 call $~lib/map/Map#values - local.tee $12 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -19680,63 +19658,62 @@ i32.const 24 i32.const 28 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $11 i32.store - local.get $3 + local.get $11 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store local.get $1 if - local.get $3 + local.get $11 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $11 i32.const 3 i32.store offset=4 - local.get $3 + local.get $11 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 local.get $1 if - local.get $3 + local.get $11 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $11 i32.const 4 i32.store offset=12 - local.get $3 + local.get $11 i32.const 0 i32.store offset=16 - local.get $3 + local.get $11 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $11 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $16 + local.tee $12 i32.store offset=16 loop $for-loop|2 - local.get $4 + local.get $2 i32.load offset=12 - local.get $0 + local.get $9 i32.gt_s if - local.get $0 - local.tee $2 - local.get $4 + local.get $2 i32.load offset=12 - i32.ge_u + local.get $9 + i32.le_u if i32.const 1248 i32.const 1728 @@ -19745,23 +19722,23 @@ call $~lib/builtins/abort unreachable end - local.get $4 - i32.load offset=4 local.get $2 + i32.load offset=4 + local.get $9 i32.const 2 i32.shl i32.add f32.load - local.set $11 - local.get $12 - local.get $2 + local.set $4 + local.get $7 + local.get $9 call $~lib/array/Array#__get - local.set $10 - local.get $13 + local.set $8 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $11 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19795,12 +19772,12 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 local.tee $0 i32.const 1 @@ -19808,8 +19785,8 @@ if (result i32) i32.const 0 else - local.get $11 - local.get $6 + local.get $4 + local.get $1 f32.load f32.eq end @@ -19817,14 +19794,14 @@ local.get $0 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|011 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 i32.eqz if i32.const 0 @@ -19834,15 +19811,15 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $10 + local.get $8 i32.const 20 i32.sub f32.convert_i32_s - local.tee $7 + local.tee $13 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19876,21 +19853,21 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 - else - local.get $7 - local.get $6 + else + local.get $13 + local.get $1 f32.load f32.eq end @@ -19898,14 +19875,14 @@ local.get $0 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|014 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 i32.eqz if i32.const 0 @@ -19926,9 +19903,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 - i32.load local.get $11 + i32.load + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19939,26 +19916,26 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $9 - local.get $3 + local.tee $6 + local.get $11 i32.load offset=4 i32.and i32.const 2 @@ -19978,7 +19955,7 @@ if (result i32) i32.const 0 else - local.get $11 + local.get $4 local.get $0 f32.load f32.eq @@ -19997,18 +19974,18 @@ local.get $0 if local.get $0 - local.get $11 + local.get $4 f32.store offset=4 else - local.get $3 + local.get $11 i32.load offset=16 - local.get $3 + local.get $11 i32.load offset=12 i32.eq if - local.get $3 + local.get $11 i32.load offset=20 - local.get $3 + local.get $11 i32.load offset=12 i32.const 3 i32.mul @@ -20016,17 +19993,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + local.get $11 i32.load offset=4 else - local.get $3 + local.get $11 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $15 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -20040,14 +20017,14 @@ i64.const 0 i64.store local.get $0 - local.get $15 + local.get $14 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $14 + local.tee $15 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -20055,45 +20032,46 @@ i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=4 - local.get $3 + local.get $11 i32.load offset=8 - local.tee $5 - local.get $3 + local.tee $10 + local.get $11 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $17 + local.set $16 local.get $1 local.set $0 loop $while-continue|00 - local.get $5 - local.get $17 + local.get $10 + local.get $16 i32.ne if - local.get $5 + local.get $10 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $5 + local.get $10 f32.load - local.tee $7 + local.tee $13 f32.store local.get $0 - local.get $5 + local.get $10 f32.load offset=4 f32.store offset=4 local.get $0 - local.get $7 + local.get $14 + local.get $13 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20103,35 +20081,34 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $17 + local.get $17 i32.const 15 i32.shr_u - local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $17 + local.get $17 i32.const 13 i32.shr_u - local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $17 + local.get $17 i32.const 16 i32.shr_u - local.get $6 i32.xor - local.get $15 i32.and i32.const 2 i32.shl - local.get $14 + local.get $15 i32.add - local.tee $6 + local.tee $17 i32.load i32.store offset=8 - local.get $6 + local.get $17 local.get $0 i32.store local.get $0 @@ -20139,39 +20116,39 @@ i32.add local.set $0 end - local.get $5 + local.get $10 i32.const 12 i32.add - local.set $5 + local.set $10 br $while-continue|00 end end - local.get $3 - local.get $14 + local.get $11 + local.get $15 i32.store - local.get $14 + local.get $15 if - local.get $3 - local.get $14 + local.get $11 + local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 - local.get $15 + local.get $11 + local.get $14 i32.store offset=4 - local.get $3 + local.get $11 local.get $1 i32.store offset=8 local.get $1 if - local.get $3 + local.get $11 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 - local.get $8 + local.get $11 + local.get $5 i32.store offset=12 - local.get $3 - local.get $3 + local.get $11 + local.get $11 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -20180,70 +20157,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $11 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store - local.get $3 - local.get $3 + local.get $11 + local.get $11 i32.load offset=16 - local.tee $0 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $0 + local.get $1 i32.const 12 i32.mul - local.get $1 + local.get $0 i32.add - local.tee $1 - local.get $11 + local.tee $0 + local.get $4 f32.store - local.get $1 - local.get $11 + local.get $0 + local.get $4 f32.store offset=4 - local.get $3 - local.get $3 + local.get $11 + local.get $11 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $1 - local.get $3 + local.get $0 + local.get $11 i32.load - local.get $3 + local.get $11 i32.load offset=4 - local.get $9 + local.get $6 i32.and i32.const 2 i32.shl i32.add - local.tee $0 + local.tee $1 i32.load i32.store offset=8 - local.get $0 local.get $1 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 - local.get $10 + local.get $12 + local.get $8 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $2 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|2 end end - local.get $3 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -20255,7 +20232,7 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -20268,17 +20245,17 @@ unreachable end f32.const 0 - local.set $7 + local.set $4 loop $for-loop|3 - local.get $7 + local.get $4 f32.const 50 f32.lt if - local.get $13 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $7 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20312,12 +20289,12 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 local.tee $0 i32.const 1 @@ -20325,8 +20302,8 @@ if (result i32) i32.const 0 else - local.get $7 - local.get $6 + local.get $4 + local.get $1 f32.load f32.eq end @@ -20334,14 +20311,14 @@ local.get $0 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|019 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 i32.eqz if i32.const 0 @@ -20351,10 +20328,10 @@ call $~lib/builtins/abort unreachable end - local.get $13 - local.get $7 + local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $7 + local.get $4 i32.trunc_f32_s i32.const 20 i32.add @@ -20367,14 +20344,14 @@ call $~lib/builtins/abort unreachable end - local.get $13 - local.get $7 + local.get $3 + local.get $4 call $~lib/map/Map#delete - local.get $13 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $7 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20408,12 +20385,12 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 local.tee $0 i32.const 1 @@ -20421,8 +20398,8 @@ if (result i32) i32.const 0 else - local.get $7 - local.get $6 + local.get $4 + local.get $1 f32.load f32.eq end @@ -20430,14 +20407,14 @@ local.get $0 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|022 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 if i32.const 0 i32.const 1568 @@ -20446,14 +20423,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $4 f32.const 1 f32.add - local.set $7 + local.set $4 br $for-loop|3 end end - local.get $13 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -20466,17 +20443,17 @@ unreachable end f32.const 0 - local.set $7 + local.set $4 loop $for-loop|4 - local.get $7 + local.get $4 f32.const 50 f32.lt if - local.get $13 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $7 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20510,12 +20487,12 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 local.tee $0 i32.const 1 @@ -20523,8 +20500,8 @@ if (result i32) i32.const 0 else - local.get $7 - local.get $6 + local.get $4 + local.get $1 f32.load f32.eq end @@ -20532,14 +20509,14 @@ local.get $0 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|025 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 if i32.const 0 i32.const 1568 @@ -20548,18 +20525,18 @@ call $~lib/builtins/abort unreachable end - local.get $13 - local.get $7 - local.get $7 + local.get $3 + local.get $4 + local.get $4 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $13 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $7 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20593,12 +20570,12 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 local.tee $0 i32.const 1 @@ -20606,8 +20583,8 @@ if (result i32) i32.const 0 else - local.get $7 - local.get $6 + local.get $4 + local.get $1 f32.load f32.eq end @@ -20615,14 +20592,14 @@ local.get $0 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|028 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 i32.eqz if i32.const 0 @@ -20632,14 +20609,14 @@ call $~lib/builtins/abort unreachable end - local.get $13 - local.get $7 + local.get $3 + local.get $4 call $~lib/map/Map#delete - local.get $13 + local.get $3 i32.load - local.get $13 + local.get $3 i32.load offset=4 - local.get $7 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20673,12 +20650,12 @@ i32.shl i32.add i32.load - local.set $6 + local.set $1 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $6 + local.get $1 if - local.get $6 + local.get $1 i32.load offset=8 local.tee $0 i32.const 1 @@ -20686,8 +20663,8 @@ if (result i32) i32.const 0 else - local.get $7 - local.get $6 + local.get $4 + local.get $1 f32.load f32.eq end @@ -20695,14 +20672,14 @@ local.get $0 i32.const -2 i32.and - local.set $6 + local.set $1 br $while-continue|031 end end i32.const 0 - local.set $6 + local.set $1 end - local.get $6 + local.get $1 if i32.const 0 i32.const 1568 @@ -20711,14 +20688,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $4 f32.const 1 f32.add - local.set $7 + local.set $4 br $for-loop|4 end end - local.get $13 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -20730,9 +20707,9 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $3 call $~lib/map/Map#clear - local.get $13 + local.get $3 i32.load offset=20 if i32.const 0 @@ -20879,7 +20856,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -20895,7 +20872,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=16 i32.const 4 @@ -20905,23 +20882,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $7 i32.ne if - local.get $4 + local.get $5 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $5 f64.load local.tee $8 f64.store local.get $2 - local.get $4 + local.get $5 i32.load offset=8 i32.store offset=8 local.get $2 @@ -20971,7 +20948,7 @@ i32.and i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add local.tee $10 i32.load @@ -20984,20 +20961,20 @@ i32.add local.set $2 end - local.get $4 + local.get $5 i32.const 16 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end local.get $0 - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 if local.get $0 - local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -21260,10 +21237,10 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i64) + (local $3 f64) + (local $4 i32) + (local $5 i64) + (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) @@ -21286,16 +21263,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21304,63 +21281,63 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 0 i32.store - local.get $5 + local.get $6 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $10 i32.store - local.get $5 + local.get $10 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 if - local.get $5 - local.get $7 + local.get $10 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 + local.get $10 i32.const 3 i32.store offset=4 - local.get $5 + local.get $10 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $6 i32.store offset=8 - local.get $7 + local.get $6 if - local.get $5 - local.get $7 + local.get $10 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 + local.get $10 i32.const 4 i32.store offset=12 - local.get $5 + local.get $10 i32.const 0 i32.store offset=16 - local.get $5 + local.get $10 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $1 + local.get $10 i32.store loop $for-loop|0 - local.get $4 + local.get $3 f64.const 100 f64.lt if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -21370,15 +21347,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 - local.get $4 + local.get $10 + local.get $3 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21389,10 +21366,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add @@ -21405,14 +21382,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|0 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -21425,14 +21402,14 @@ unreachable end f64.const 0 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 + local.get $3 f64.const 100 f64.lt if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21443,10 +21420,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add @@ -21459,15 +21436,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 - local.get $4 + local.get $10 + local.get $3 + local.get $3 i32.trunc_f64_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21478,10 +21455,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.trunc_f64_s i32.const 20 i32.add @@ -21494,14 +21471,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|1 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -21514,7 +21491,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21523,16 +21500,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $10 i32.load offset=8 - local.set $8 - local.get $5 + local.set $7 + local.get $10 i32.load offset=16 - local.set $9 - local.get $2 + local.set $8 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -21541,10 +21518,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $9 i64.const 0 i64.store - local.get $10 + local.get $9 i32.const 16 i32.const 30 call $~lib/rt/itcms/__new @@ -21562,7 +21539,7 @@ local.get $11 i32.const 0 i32.store offset=12 - local.get $9 + local.get $8 i32.const 134217727 i32.gt_u if @@ -21574,15 +21551,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.const 8 - local.get $9 + local.get $8 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $10 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new local.tee $12 @@ -21600,48 +21577,48 @@ local.get $12 i32.store offset=4 local.get $11 - local.get $10 + local.get $9 i32.store offset=8 local.get $11 - local.get $9 + local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $11 i32.store loop $for-loop|02 - local.get $3 - local.get $9 + local.get $2 + local.get $8 i32.lt_s if - local.get $3 + local.get $2 i32.const 4 i32.shl - local.get $8 + local.get $7 i32.add - local.tee $2 + local.tee $9 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $2 - f64.load - local.set $4 - local.get $1 - local.tee $2 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $1 + local.set $0 + local.get $9 + f64.load + local.set $3 local.get $11 i32.load offset=12 - local.get $2 + local.get $1 i32.le_u if - local.get $2 + local.get $1 i32.const 0 i32.lt_s if @@ -21653,50 +21630,50 @@ unreachable end local.get $11 - local.get $2 + local.get $1 i32.const 1 i32.add - local.tee $10 + local.tee $9 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity local.get $11 - local.get $10 + local.get $9 i32.store offset=12 end local.get $11 i32.load offset=4 - local.get $2 + local.get $1 i32.const 3 i32.shl i32.add - local.get $4 + local.get $3 f64.store end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|02 end end local.get $11 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity local.get $11 - local.get $1 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 local.get $11 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $10 call $~lib/map/Map#values local.tee $12 i32.store offset=8 @@ -21710,10 +21687,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 24 i32.const 31 call $~lib/rt/itcms/__new @@ -21722,12 +21699,12 @@ local.get $13 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if local.get $13 - local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 @@ -21736,12 +21713,12 @@ local.get $13 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $2 + local.get $1 if local.get $13 - local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 @@ -21761,19 +21738,18 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $7 + local.tee $6 i32.store offset=16 loop $for-loop|2 local.get $11 i32.load offset=12 - local.get $0 + local.get $4 i32.gt_s if - local.get $0 - local.tee $1 local.get $11 i32.load offset=12 - i32.ge_u + local.get $4 + i32.le_u if i32.const 1248 i32.const 1728 @@ -21784,18 +21760,18 @@ end local.get $11 i32.load offset=4 - local.get $1 + local.get $4 i32.const 3 i32.shl i32.add f64.load - local.set $4 + local.set $3 local.get $12 - local.get $1 - call $~lib/array/Array#__get - local.set $8 - local.get $5 local.get $4 + call $~lib/array/Array#__get + local.set $7 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21806,8 +21782,8 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $8 + local.get $10 + local.get $7 i32.const 20 i32.sub f64.convert_i32_s @@ -21834,9 +21810,9 @@ i32.store local.get $13 i32.load - local.get $4 + local.get $3 i64.reinterpret_f64 - local.tee $6 + local.tee $5 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21846,7 +21822,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 + local.get $5 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21891,19 +21867,19 @@ if local.get $0 i32.load offset=16 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $3 local.get $0 f64.load f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + local.get $1 i32.const -2 i32.and local.set $0 @@ -21916,7 +21892,7 @@ local.get $0 if local.get $0 - local.get $4 + local.get $3 f64.store offset=8 else local.get $13 @@ -21945,7 +21921,7 @@ i32.const 1 i32.or end - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21959,14 +21935,14 @@ i64.const 0 i64.store local.get $0 - local.get $9 + local.get $8 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -21978,43 +21954,43 @@ i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=4 local.get $13 i32.load offset=8 - local.tee $3 + local.tee $2 local.get $13 i32.load offset=16 i32.const 24 i32.mul i32.add local.set $16 - local.get $2 + local.get $1 local.set $0 loop $while-continue|00 - local.get $3 + local.get $2 local.get $16 i32.ne if - local.get $3 + local.get $2 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $3 + local.get $2 f64.load local.tee $17 f64.store local.get $0 - local.get $3 + local.get $2 f64.load offset=8 f64.store offset=8 local.get $0 local.get $17 i64.reinterpret_f64 - local.tee $6 + local.tee $5 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -22024,7 +22000,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 + local.get $5 i64.const 32 i64.shr_u i32.wrap_i64 @@ -22054,11 +22030,11 @@ i32.const 16 i32.shr_u i32.xor - local.get $9 + local.get $8 i32.and i32.const 2 i32.shl - local.get $10 + local.get $9 i32.add local.tee $18 i32.load @@ -22071,32 +22047,32 @@ i32.add local.set $0 end - local.get $3 + local.get $2 i32.const 24 i32.add - local.set $3 + local.set $2 br $while-continue|00 end end local.get $13 - local.get $10 + local.get $9 i32.store - local.get $10 + local.get $9 if local.get $13 - local.get $10 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 - local.get $9 + local.get $8 i32.store offset=4 local.get $13 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 if local.get $13 - local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $13 @@ -22119,20 +22095,20 @@ local.get $13 local.get $13 i32.load offset=16 - local.tee $2 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $1 i32.const 24 i32.mul local.get $0 i32.add local.tee $0 - local.get $4 + local.get $3 f64.store local.get $0 - local.get $4 + local.get $3 f64.store offset=8 local.get $13 local.get $13 @@ -22150,10 +22126,10 @@ i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=16 - local.get $2 + local.get $1 local.get $0 i32.store end @@ -22161,17 +22137,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $6 local.get $7 - local.get $8 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|2 end end @@ -22187,7 +22163,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -22200,14 +22176,14 @@ unreachable end f64.const 0 - local.set $4 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 f64.const 50 f64.lt if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -22218,10 +22194,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.trunc_f64_s i32.const 20 i32.add @@ -22234,11 +22210,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#delete - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -22248,14 +22224,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|3 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 50 i32.ne @@ -22268,14 +22244,14 @@ unreachable end f64.const 0 - local.set $4 + local.set $3 loop $for-loop|4 - local.get $4 + local.get $3 f64.const 50 f64.lt if - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -22285,15 +22261,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 - local.get $4 + local.get $10 + local.get $3 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -22304,11 +22280,11 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#delete - local.get $5 - local.get $4 + local.get $10 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -22318,14 +22294,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|4 end end - local.get $5 + local.get $10 i32.load offset=20 i32.const 50 i32.ne @@ -22337,9 +22313,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $10 call $~lib/map/Map#clear - local.get $5 + local.get $10 i32.load offset=20 if i32.const 0 @@ -22570,23 +22546,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor local.tee $4 local.get $0 @@ -22809,7 +22785,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22837,7 +22812,7 @@ i32.load offset=16 local.tee $4 call $~lib/array/Array#constructor - local.tee $6 + local.tee $5 i32.store loop $for-loop|0 local.get $2 @@ -22849,22 +22824,21 @@ i32.mul local.get $3 i32.add - local.tee $5 + local.tee $0 i32.load offset=8 i32.const 1 i32.and i32.eqz if + local.get $5 local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $6 local.get $0 - local.get $5 i32.load offset=4 call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 end local.get $2 i32.const 1 @@ -22873,19 +22847,19 @@ br $for-loop|0 end end - local.get $6 + local.get $5 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 + local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 ) (func $~lib/map/Map#constructor (result i32) (local $0 i32) @@ -22990,23 +22964,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor local.tee $4 local.get $0 @@ -23168,23 +23142,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor local.tee $4 local.get $0 @@ -23347,23 +23321,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor local.tee $4 local.get $0 @@ -23527,23 +23501,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor local.tee $4 local.get $0 @@ -23705,23 +23679,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor local.tee $4 local.get $0 @@ -24039,7 +24013,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24067,7 +24040,7 @@ i32.load offset=16 local.tee $4 call $~lib/array/Array#constructor - local.tee $6 + local.tee $5 i32.store loop $for-loop|0 local.get $2 @@ -24079,22 +24052,21 @@ i32.shl local.get $3 i32.add - local.tee $5 + local.tee $0 i32.load offset=12 i32.const 1 i32.and i32.eqz if + local.get $5 local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $6 local.get $0 - local.get $5 i32.load offset=8 call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 end local.get $2 i32.const 1 @@ -24103,19 +24075,19 @@ br $for-loop|0 end end - local.get $6 + local.get $5 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 + local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 ) (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -24339,23 +24311,23 @@ i32.const 668265263 i32.mul local.tee $3 - local.get $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 - local.get $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 - local.get $3 i32.const 16 i32.shr_u + local.get $3 i32.xor local.tee $4 local.get $0 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 45a5de7d71..42e56212f4 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -2821,67 +2821,73 @@ call $std/math/check ) (func $std/math/test_atan2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - (local $4 i32) - (local $5 i64) + (local $4 f64) + (local $5 f64) (local $6 i32) (local $7 i64) (local $8 i32) - (local $9 i32) - (local $10 f64) - block $__inlined_func$~lib/math/NativeMath.atan2 (result f64) - local.get $1 - local.get $0 - f64.add - local.get $0 + (local $9 i64) + (local $10 i32) + (local $11 i32) + block $__inlined_func$~lib/math/NativeMath.atan2 local.get $0 + local.tee $4 + local.get $4 f64.ne local.get $1 - local.get $1 + local.tee $5 + local.get $5 f64.ne i32.or - br_if $__inlined_func$~lib/math/NativeMath.atan2 - drop - local.get $0 + if + local.get $5 + local.get $4 + f64.add + local.set $1 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $4 i64.reinterpret_f64 - local.tee $5 + local.tee $7 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $9 - local.get $1 + local.set $11 + local.get $5 i64.reinterpret_f64 - local.tee $7 + local.tee $9 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $8 + local.tee $10 i32.const 1072693248 i32.sub - local.get $7 + local.get $9 i32.wrap_i64 - local.tee $6 + local.tee $8 i32.or i32.eqz if - local.get $0 + local.get $4 call $~lib/math/NativeMath.atan + local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $8 + local.get $10 i32.const 30 i32.shr_u i32.const 2 i32.and - local.get $9 + local.get $11 i32.const 31 i32.shr_u i32.or - local.set $4 - local.get $9 + local.set $6 + local.get $11 i32.const 2147483647 i32.and - local.tee $9 - local.get $5 + local.tee $11 + local.get $7 i32.wrap_i64 i32.or i32.eqz @@ -2889,134 +2895,158 @@ block $break|0 block $case3|0 block $case2|0 - block $case0|0 - local.get $4 - br_table $case0|0 $case0|0 $case2|0 $case3|0 $break|0 + block $case1|0 + local.get $6 + br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0 end - local.get $0 + local.get $4 + local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const 3.141592653589793 + local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const -3.141592653589793 + local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end end - block $folding-inner0 + local.get $8 + local.get $10 + i32.const 2147483647 + i32.and + local.tee $10 + i32.or + i32.eqz + if + f64.const -1.5707963267948966 + f64.const 1.5707963267948966 local.get $6 - local.get $8 - i32.const 2147483647 + i32.const 1 i32.and - local.tee $8 - i32.or - i32.eqz - br_if $folding-inner0 - local.get $8 + select + local.set $1 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $10 + i32.const 2146435072 + i32.eq + if + local.get $11 i32.const 2146435072 i32.eq - if - local.get $9 - i32.const 2146435072 - i32.eq - if (result f64) - f64.const 2.356194490192345 - f64.const 0.7853981633974483 - local.get $4 - i32.const 2 - i32.and - select - else - f64.const 3.141592653589793 - f64.const 0 - local.get $4 - i32.const 2 - i32.and - select - end - local.tee $10 + if (result f64) + f64.const 2.356194490192345 + f64.const 0.7853981633974483 + local.get $6 + i32.const 2 + i32.and + select + local.tee $1 f64.neg - local.get $10 - local.get $4 + local.get $1 + local.get $6 i32.const 1 i32.and select - br $__inlined_func$~lib/math/NativeMath.atan2 - end - local.get $9 - i32.const 2146435072 - i32.eq - local.get $9 - local.get $8 - i32.const 67108864 - i32.add - i32.gt_u - i32.or - br_if $folding-inner0 - local.get $8 - local.get $9 - i32.const 67108864 - i32.add - i32.gt_u - i32.const 0 - local.get $4 - i32.const 2 - i32.and - select - if (result f64) - f64.const 0 else - local.get $0 + f64.const 3.141592653589793 + f64.const 0 + local.get $6 + i32.const 2 + i32.and + select + local.tee $1 + f64.neg local.get $1 - f64.div - f64.abs - call $~lib/math/NativeMath.atan + local.get $6 + i32.const 1 + i32.and + select end - local.set $10 - block $break|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $4 - br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 - end - local.get $10 - br $__inlined_func$~lib/math/NativeMath.atan2 + local.set $1 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $11 + i32.const 2146435072 + i32.eq + local.get $11 + local.get $10 + i32.const 67108864 + i32.add + i32.gt_u + i32.or + if + f64.const -1.5707963267948966 + f64.const 1.5707963267948966 + local.get $6 + i32.const 1 + i32.and + select + local.set $1 + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $10 + local.get $11 + i32.const 67108864 + i32.add + i32.gt_u + i32.const 0 + local.get $6 + i32.const 2 + i32.and + select + if (result f64) + f64.const 0 + else + local.get $4 + local.get $5 + f64.div + f64.abs + call $~lib/math/NativeMath.atan + end + local.set $1 + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $6 + br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 end - local.get $10 - f64.neg br $__inlined_func$~lib/math/NativeMath.atan2 end - f64.const 3.141592653589793 - local.get $10 - f64.const 1.2246467991473532e-16 - f64.sub - f64.sub + local.get $1 + f64.neg + local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $10 + f64.const 3.141592653589793 + local.get $1 f64.const 1.2246467991473532e-16 f64.sub - f64.const 3.141592653589793 f64.sub + local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end - unreachable + local.get $1 + f64.const 1.2246467991473532e-16 + f64.sub + f64.const 3.141592653589793 + f64.sub + local.set $1 + br $__inlined_func$~lib/math/NativeMath.atan2 end - f64.const -1.5707963267948966 - f64.const 1.5707963267948966 - local.get $4 - i32.const 1 - i32.and - select + unreachable end + local.get $1 local.get $2 local.get $3 call $std/math/check if (result i32) local.get $0 - local.get $1 + local.get $5 call $~lib/bindings/Math/atan2 local.get $2 local.get $3 @@ -44070,9 +44100,9 @@ local.get $6 i64.xor local.tee $6 + local.get $6 i64.const 17 i64.shr_u - local.get $6 i64.xor i64.xor local.get $2 diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 27e13d7352..fe98aa7758 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -600,12 +600,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -623,11 +623,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17872 @@ -635,14 +635,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -652,17 +652,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -679,116 +679,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17860 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -799,146 +726,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17860 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17860 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17860 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17860 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1051,7 +1053,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1128,16 +1130,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $2 local.get $0 - local.get $1 + local.get $2 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1190,7 +1192,7 @@ i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $2 i32.const 16 i32.ge_u if @@ -1205,7 +1207,7 @@ i32.const 32 i32.add local.tee $4 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 1 @@ -1228,8 +1230,8 @@ i32.const -4 i32.and i32.add - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and @@ -1242,12 +1244,12 @@ i32.const 8 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $0 @@ -1261,7 +1263,7 @@ local.get $0 i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1277,41 +1279,42 @@ i32.const 20 i32.add local.tee $0 + local.tee $2 i32.const 0 i32.store8 - local.get $0 + local.get $2 i32.const 8 i32.add - local.tee $1 + local.tee $3 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $3 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $3 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $3 i32.const 4 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 local.get $0 i32.store local.get $0 diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 2c34b2475b..05657b3824 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -659,12 +659,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -682,11 +682,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17968 @@ -694,14 +694,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -711,17 +711,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -738,116 +738,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17956 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -858,146 +785,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17956 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17956 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17956 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17956 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1971,22 +1973,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a2 global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/a1 local.tee $0 + global.get $std/operator-overloading/a1 + local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 global.get $std/operator-overloading/a2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a @@ -3245,22 +3248,23 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais2 global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/ais1 local.tee $0 + global.get $std/operator-overloading/ais1 + local.tee $1 i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $0 global.get $std/operator-overloading/ais2 - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais @@ -3308,22 +3312,23 @@ call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii2 global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/aii1 local.tee $0 + global.get $std/operator-overloading/aii1 + local.tee $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $0 global.get $std/operator-overloading/aii2 - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii diff --git a/tests/compiler/std/pointer.optimized.wat b/tests/compiler/std/pointer.optimized.wat index 87ab92dc44..a90a5ad507 100644 --- a/tests/compiler/std/pointer.optimized.wat +++ b/tests/compiler/std/pointer.optimized.wat @@ -864,9 +864,9 @@ unreachable end global.get $std/pointer/one - local.set $0 + local.set $1 global.get $std/pointer/two - local.tee $1 + local.tee $0 if block $~lib/util/memory/memmove|inlined.0 i32.const 8 @@ -875,33 +875,33 @@ local.get $1 i32.eq br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 local.get $0 + local.get $1 i32.sub i32.const 8 i32.sub i32.const -16 i32.le_u if - local.get $0 local.get $1 + local.get $0 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $0 local.get $1 - i32.lt_u + i32.gt_u if - local.get $1 + local.get $0 i32.const 7 i32.and - local.get $0 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $0 + local.get $1 i32.const 7 i32.and if @@ -912,16 +912,16 @@ i32.const 1 i32.sub local.set $4 - local.get $0 + local.get $1 local.tee $2 i32.const 1 i32.add - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.tee $3 i32.const 1 i32.add - local.set $1 + local.set $0 local.get $2 local.get $3 i32.load8_u @@ -934,22 +934,22 @@ i32.const 8 i32.ge_u if - local.get $0 local.get $1 + local.get $0 i64.load i64.store local.get $4 i32.const 8 i32.sub local.set $4 - local.get $0 - i32.const 8 - i32.add - local.set $0 local.get $1 i32.const 8 i32.add local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 br $while-continue|1 end end @@ -957,16 +957,16 @@ loop $while-continue|2 local.get $4 if - local.get $0 + local.get $1 local.tee $2 i32.const 1 i32.add - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.tee $3 i32.const 1 i32.add - local.set $1 + local.set $0 local.get $2 local.get $3 i32.load8_u @@ -979,16 +979,16 @@ end end else - local.get $1 + local.get $0 i32.const 7 i32.and - local.get $0 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $0 + local.get $1 local.get $4 i32.add i32.const 7 @@ -1001,9 +1001,9 @@ i32.const 1 i32.sub local.tee $4 - local.get $0 - i32.add local.get $1 + i32.add + local.get $0 local.get $4 i32.add i32.load8_u @@ -1020,9 +1020,9 @@ i32.const 8 i32.sub local.tee $4 - local.get $0 - i32.add local.get $1 + i32.add + local.get $0 local.get $4 i32.add i64.load @@ -1038,9 +1038,9 @@ i32.const 1 i32.sub local.tee $4 - local.get $0 - i32.add local.get $1 + i32.add + local.get $0 local.get $4 i32.add i32.load8_u @@ -1051,37 +1051,37 @@ end end else - local.get $0 + local.get $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 8 i32.add - local.tee $1 + local.tee $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $0 i32.const 4 i32.sub i32.const 0 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 8015b7a575..ba351c0b74 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -201,6 +201,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -745,12 +747,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -768,11 +770,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18224 @@ -780,14 +782,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -797,17 +799,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -824,116 +826,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18220 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -944,146 +873,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18220 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18220 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18220 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end + i32.const 4 + i32.add + local.tee $0 + i32.const 18220 + i32.ge_u if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1765,6 +1769,7 @@ local.tee $8 i32.store8 local.get $2 + local.get $1 local.get $8 i32.extend8_s i32.const -1028477379 @@ -1776,25 +1781,24 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl @@ -3214,7 +3218,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3256,44 +3259,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load8_u local.get $3 i32.const 255 @@ -3301,17 +3304,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|0 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 if i32.const 0 i32.const 1568 @@ -3338,44 +3341,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load8_u local.get $3 i32.const 255 @@ -3383,17 +3386,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|02 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -3447,44 +3450,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load8_u local.get $3 i32.const 255 @@ -3492,17 +3495,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|05 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -3532,44 +3535,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load8_u local.get $3 i32.const 255 @@ -3577,17 +3580,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|08 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -3628,17 +3631,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $3 i32.const 0 i32.store local.get $4 i32.load offset=8 - local.set $5 + local.set $7 local.get $4 i32.load offset=16 - local.tee $3 - local.set $9 - local.get $7 + local.set $1 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3647,28 +3649,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $8 i64.const 0 i64.store - local.get $1 + local.get $8 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store offset=4 - local.get $10 + local.get $9 i32.const 0 i32.store offset=8 - local.get $10 + local.get $9 i32.const 0 i32.store offset=12 - local.get $9 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -3680,82 +3682,81 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $1 i32.const 8 - local.get $9 + local.get $1 i32.const 8 i32.gt_u select - local.tee $1 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store offset=4 + local.get $9 local.get $10 - local.get $11 i32.store - local.get $11 + local.get $10 if + local.get $9 local.get $10 - local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $9 local.get $10 - local.get $11 i32.store offset=4 - local.get $10 - local.get $1 + local.get $9 + local.get $8 i32.store offset=8 - local.get $10 local.get $9 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $10 + local.get $3 + local.get $9 i32.store loop $for-loop|0 - local.get $3 - local.get $8 + local.get $1 + local.get $5 i32.gt_s if - local.get $8 + local.get $5 i32.const 3 i32.shl - local.get $5 + local.get $7 i32.add - local.tee $7 + local.tee $3 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $9 + local.get $2 + local.get $3 + i32.load8_s + call $~lib/array/Array#__set local.get $2 - local.tee $1 i32.const 1 i32.add local.set $2 - local.get $10 - local.get $1 - local.get $7 - i32.load8_s - call $~lib/array/Array#__set end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|0 end end - local.get $10 + local.get $9 local.get $2 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $9 local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -3763,19 +3764,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $10 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $3 i32.store offset=8 loop $for-loop|4 - local.get $10 + local.get $9 i32.load offset=12 local.get $0 i32.gt_s if - local.get $10 + local.get $9 local.get $0 call $~lib/array/Array#__get local.set $2 @@ -3861,7 +3862,7 @@ unreachable end local.get $3 - local.get $10 + local.get $9 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -4451,9 +4452,8 @@ local.tee $8 i32.store8 local.get $2 + local.get $1 local.get $8 - i32.const 255 - i32.and i32.const -1028477379 i32.mul i32.const 374761394 @@ -4463,25 +4463,24 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl @@ -4845,7 +4844,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4889,44 +4887,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load8_u local.get $3 i32.const 255 @@ -4934,17 +4932,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|0 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 if i32.const 0 i32.const 1568 @@ -4972,44 +4970,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load8_u local.get $3 i32.const 255 @@ -5017,17 +5015,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|02 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -5083,44 +5081,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load8_u local.get $3 i32.const 255 @@ -5128,17 +5126,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|05 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -5169,44 +5167,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load8_u local.get $3 i32.const 255 @@ -5214,17 +5212,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|08 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -5265,17 +5263,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $3 i32.const 0 i32.store local.get $4 i32.load offset=8 - local.set $5 + local.set $7 local.get $4 i32.load offset=16 - local.tee $3 - local.set $9 - local.get $7 + local.set $1 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5284,28 +5281,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $8 i64.const 0 i64.store - local.get $1 + local.get $8 i32.const 16 i32.const 6 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store offset=4 - local.get $10 + local.get $9 i32.const 0 i32.store offset=8 - local.get $10 + local.get $9 i32.const 0 i32.store offset=12 - local.get $9 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -5317,82 +5314,81 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $1 i32.const 8 - local.get $9 + local.get $1 i32.const 8 i32.gt_u select - local.tee $1 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store offset=4 + local.get $9 local.get $10 - local.get $11 i32.store - local.get $11 + local.get $10 if + local.get $9 local.get $10 - local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $9 local.get $10 - local.get $11 i32.store offset=4 - local.get $10 - local.get $1 + local.get $9 + local.get $8 i32.store offset=8 - local.get $10 local.get $9 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $10 + local.get $3 + local.get $9 i32.store loop $for-loop|0 - local.get $3 - local.get $8 + local.get $1 + local.get $5 i32.gt_s if - local.get $8 + local.get $5 i32.const 3 i32.shl - local.get $5 + local.get $7 i32.add - local.tee $7 + local.tee $3 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $9 + local.get $2 + local.get $3 + i32.load8_u + call $~lib/array/Array#__set local.get $2 - local.tee $1 i32.const 1 i32.add local.set $2 - local.get $10 - local.get $1 - local.get $7 - i32.load8_u - call $~lib/array/Array#__set end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|0 end end - local.get $10 + local.get $9 local.get $2 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $9 local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -5400,19 +5396,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $10 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $3 i32.store offset=8 loop $for-loop|4 - local.get $10 + local.get $9 i32.load offset=12 local.get $0 i32.gt_s if - local.get $10 + local.get $9 local.get $0 call $~lib/array/Array#__get local.set $2 @@ -5499,7 +5495,7 @@ unreachable end local.get $3 - local.get $10 + local.get $9 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -6096,6 +6092,7 @@ local.tee $8 i32.store16 local.get $2 + local.get $1 local.get $8 i32.extend16_s i32.const -1028477379 @@ -6107,25 +6104,24 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl @@ -6528,7 +6524,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -6570,44 +6565,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load16_u local.get $3 i32.const 65535 @@ -6615,17 +6610,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|0 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 if i32.const 0 i32.const 1568 @@ -6652,44 +6647,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load16_u local.get $3 i32.const 65535 @@ -6697,17 +6692,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|02 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -6761,44 +6756,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load16_u local.get $3 i32.const 65535 @@ -6806,17 +6801,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|05 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -6846,44 +6841,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load16_u local.get $3 i32.const 65535 @@ -6891,17 +6886,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|08 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -6942,17 +6937,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $3 i32.const 0 i32.store local.get $4 i32.load offset=8 - local.set $5 + local.set $7 local.get $4 i32.load offset=16 - local.tee $3 - local.set $9 - local.get $7 + local.set $1 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6961,28 +6955,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $8 i64.const 0 i64.store - local.get $1 + local.get $8 i32.const 16 i32.const 8 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store offset=4 - local.get $10 + local.get $9 i32.const 0 i32.store offset=8 - local.get $10 + local.get $9 i32.const 0 i32.store offset=12 - local.get $9 + local.get $1 i32.const 536870910 i32.gt_u if @@ -6994,84 +6988,83 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $1 i32.const 8 - local.get $9 + local.get $1 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $1 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store offset=4 + local.get $9 local.get $10 - local.get $11 i32.store - local.get $11 + local.get $10 if + local.get $9 local.get $10 - local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $9 local.get $10 - local.get $11 i32.store offset=4 - local.get $10 - local.get $1 + local.get $9 + local.get $8 i32.store offset=8 - local.get $10 local.get $9 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $10 + local.get $3 + local.get $9 i32.store loop $for-loop|0 - local.get $3 - local.get $8 + local.get $1 + local.get $5 i32.gt_s if - local.get $8 + local.get $5 i32.const 3 i32.shl - local.get $5 + local.get $7 i32.add - local.tee $7 + local.tee $3 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $9 + local.get $2 + local.get $3 + i32.load16_s + call $~lib/array/Array#__set local.get $2 - local.tee $1 i32.const 1 i32.add local.set $2 - local.get $10 - local.get $1 - local.get $7 - i32.load16_s - call $~lib/array/Array#__set end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|0 end end - local.get $10 + local.get $9 local.get $2 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $9 local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -7079,19 +7072,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $10 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $3 i32.store offset=8 loop $for-loop|4 - local.get $10 + local.get $9 i32.load offset=12 local.get $0 i32.gt_s if - local.get $10 + local.get $9 local.get $0 call $~lib/array/Array#__get local.set $2 @@ -7177,7 +7170,7 @@ unreachable end local.get $3 - local.get $10 + local.get $9 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -7767,9 +7760,8 @@ local.tee $8 i32.store16 local.get $2 + local.get $1 local.get $8 - i32.const 65535 - i32.and i32.const -1028477379 i32.mul i32.const 374761395 @@ -7779,25 +7771,24 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl @@ -8163,7 +8154,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8207,44 +8197,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load16_u local.get $3 i32.const 65535 @@ -8252,17 +8242,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|0 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 if i32.const 0 i32.const 1568 @@ -8290,44 +8280,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load16_u local.get $3 i32.const 65535 @@ -8335,17 +8325,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|02 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -8401,44 +8391,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load16_u local.get $3 i32.const 65535 @@ -8446,17 +8436,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|05 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -8487,44 +8477,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $6 i32.const 15 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $6 i32.const 13 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $6 i32.const 16 i32.shr_u - local.get $5 + local.get $6 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $5 + local.set $6 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $5 + local.get $6 if - local.get $5 + local.get $6 i32.load offset=4 - local.tee $6 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $6 i32.load16_u local.get $3 i32.const 65535 @@ -8532,17 +8522,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $6 + local.get $7 i32.const -2 i32.and - local.set $5 + local.set $6 br $while-continue|08 end end i32.const 0 - local.set $5 + local.set $6 end - local.get $5 + local.get $6 i32.const 0 i32.ne i32.eqz @@ -8583,17 +8573,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $3 i32.const 0 i32.store local.get $4 i32.load offset=8 - local.set $5 + local.set $7 local.get $4 i32.load offset=16 - local.tee $3 - local.set $9 - local.get $7 + local.set $1 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8602,28 +8591,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $8 i64.const 0 i64.store - local.get $1 + local.get $8 i32.const 16 i32.const 10 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store offset=4 - local.get $10 + local.get $9 i32.const 0 i32.store offset=8 - local.get $10 + local.get $9 i32.const 0 i32.store offset=12 - local.get $9 + local.get $1 i32.const 536870910 i32.gt_u if @@ -8635,84 +8624,83 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $1 i32.const 8 - local.get $9 + local.get $1 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $1 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store offset=4 + local.get $9 local.get $10 - local.get $11 i32.store - local.get $11 + local.get $10 if + local.get $9 local.get $10 - local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $9 local.get $10 - local.get $11 i32.store offset=4 - local.get $10 - local.get $1 + local.get $9 + local.get $8 i32.store offset=8 - local.get $10 local.get $9 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $10 + local.get $3 + local.get $9 i32.store loop $for-loop|0 - local.get $3 - local.get $8 + local.get $1 + local.get $5 i32.gt_s if - local.get $8 + local.get $5 i32.const 3 i32.shl - local.get $5 + local.get $7 i32.add - local.tee $7 + local.tee $3 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $9 + local.get $2 + local.get $3 + i32.load16_u + call $~lib/array/Array#__set local.get $2 - local.tee $1 i32.const 1 i32.add local.set $2 - local.get $10 - local.get $1 - local.get $7 - i32.load16_u - call $~lib/array/Array#__set end - local.get $8 + local.get $5 i32.const 1 i32.add - local.set $8 + local.set $5 br $for-loop|0 end end - local.get $10 + local.get $9 local.get $2 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $9 local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -8720,19 +8708,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $10 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $3 i32.store offset=8 loop $for-loop|4 - local.get $10 + local.get $9 i32.load offset=12 local.get $0 i32.gt_s if - local.get $10 + local.get $9 local.get $0 call $~lib/array/Array#__get local.set $2 @@ -8819,7 +8807,7 @@ unreachable end local.get $3 - local.get $10 + local.get $9 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -9416,6 +9404,7 @@ local.tee $8 i32.store local.get $2 + local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -9426,25 +9415,24 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl @@ -9851,18 +9839,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i64.const 0 i64.store - local.get $3 + local.get $2 i32.const 0 i32.store offset=8 - local.get $3 + local.get $2 call $~lib/set/Set#constructor local.tee $4 i32.store loop $for-loop|0 - local.get $0 + local.get $3 i32.const 100 i32.lt_s if @@ -9870,7 +9858,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $0 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -9879,22 +9867,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -9903,12 +9891,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 local.tee $6 i32.const 1 @@ -9916,8 +9904,8 @@ if (result i32) i32.const 0 else - local.get $0 local.get $3 + local.get $2 i32.load i32.eq end @@ -9925,14 +9913,14 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -9942,14 +9930,13 @@ unreachable end local.get $4 - local.get $0 + local.get $3 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -9958,22 +9945,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -9982,12 +9969,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=4 local.tee $6 i32.const 1 @@ -9996,7 +9983,7 @@ i32.const 0 else local.get $3 - local.get $0 + local.get $2 i32.load i32.eq end @@ -10004,14 +9991,14 @@ local.get $6 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -10024,7 +10011,7 @@ local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end @@ -10041,9 +10028,9 @@ unreachable end i32.const 50 - local.set $0 + local.set $3 loop $for-loop|1 - local.get $0 + local.get $3 i32.const 100 i32.lt_s if @@ -10051,7 +10038,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $0 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10060,22 +10047,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -10084,12 +10071,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 local.tee $6 i32.const 1 @@ -10097,8 +10084,8 @@ if (result i32) i32.const 0 else - local.get $0 local.get $3 + local.get $2 i32.load i32.eq end @@ -10106,14 +10093,14 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -10124,14 +10111,13 @@ unreachable end local.get $4 - local.get $0 + local.get $3 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10140,22 +10126,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -10164,12 +10150,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=4 local.tee $6 i32.const 1 @@ -10178,7 +10164,7 @@ i32.const 0 else local.get $3 - local.get $0 + local.get $2 i32.load i32.eq end @@ -10186,14 +10172,14 @@ local.get $6 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -10206,7 +10192,7 @@ local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|1 end end @@ -10237,10 +10223,10 @@ i32.store local.get $4 i32.load offset=8 - local.set $9 + local.set $2 local.get $4 i32.load offset=16 - local.set $3 + local.set $9 local.get $8 i32.const 8 i32.sub @@ -10250,28 +10236,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $10 i32.store - local.get $6 + local.get $10 i32.const 0 i32.store - local.get $6 + local.get $10 i32.const 0 i32.store offset=4 - local.get $6 + local.get $10 i32.const 0 i32.store offset=8 - local.get $6 + local.get $10 i32.const 0 i32.store offset=12 - local.get $3 + local.get $9 i32.const 268435455 i32.gt_u if @@ -10283,70 +10269,69 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $9 i32.const 8 - local.get $3 + local.get $9 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $10 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.store offset=4 + local.get $10 local.get $6 - local.get $0 i32.store - local.get $0 + local.get $6 if + local.get $10 local.get $6 - local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $10 local.get $6 - local.get $0 i32.store offset=4 - local.get $6 local.get $10 - i32.store offset=8 - local.get $6 local.get $3 + i32.store offset=8 + local.get $10 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $8 - local.get $6 + local.get $10 i32.store loop $for-loop|02 - local.get $3 local.get $5 - i32.gt_s + local.get $9 + i32.lt_s if local.get $5 i32.const 3 i32.shl - local.get $9 + local.get $2 i32.add - local.tee $8 + local.tee $3 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $6 + local.get $10 local.get $0 - local.get $8 + local.get $3 i32.load call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end local.get $5 i32.const 1 @@ -10355,35 +10340,35 @@ br $for-loop|02 end end - local.get $6 - local.get $2 + local.get $10 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 - local.get $2 + local.get $10 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $7 - local.get $6 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $0 i32.store offset=8 loop $for-loop|2 - local.get $6 + local.get $10 i32.load offset=12 local.get $1 i32.gt_s if - local.get $6 + local.get $10 local.get $1 call $~lib/array/Array#__get - local.tee $3 + local.tee $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10392,27 +10377,27 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $2 + local.set $3 local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 16 i32.shr_u i32.xor @@ -10421,12 +10406,12 @@ i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 local.tee $5 i32.const 1 @@ -10434,8 +10419,8 @@ if (result i32) i32.const 0 else - local.get $3 local.get $2 + local.get $3 i32.load i32.eq end @@ -10443,14 +10428,14 @@ local.get $5 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.eqz if i32.const 0 @@ -10461,7 +10446,7 @@ unreachable end local.get $0 - local.get $6 + local.get $10 local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -10497,6 +10482,7 @@ local.get $4 i32.load offset=4 local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10505,22 +10491,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -10529,12 +10515,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 local.tee $2 i32.const 1 @@ -10542,8 +10528,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -10551,14 +10537,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -10569,14 +10555,13 @@ unreachable end local.get $4 - local.get $1 + local.get $0 call $~lib/set/Set#delete local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10678,6 +10663,7 @@ local.get $4 i32.load offset=4 local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10686,22 +10672,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -10710,12 +10696,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 local.tee $2 i32.const 1 @@ -10723,8 +10709,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -10732,14 +10718,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -10749,13 +10735,13 @@ unreachable end local.get $4 - local.get $1 + local.get $0 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10764,22 +10750,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -10788,12 +10774,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 local.tee $2 i32.const 1 @@ -10801,8 +10787,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -10810,14 +10796,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|023 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -10828,14 +10814,13 @@ unreachable end local.get $4 - local.get $1 + local.get $0 call $~lib/set/Set#delete local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11027,6 +11012,7 @@ local.tee $8 i32.store local.get $2 + local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -11037,25 +11023,24 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $1 i32.and i32.const 2 i32.shl @@ -11423,18 +11408,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i64.const 0 i64.store - local.get $3 + local.get $2 i32.const 0 i32.store offset=8 - local.get $3 + local.get $2 call $~lib/set/Set#constructor local.tee $4 i32.store loop $for-loop|0 - local.get $0 + local.get $3 i32.const 100 i32.lt_u if @@ -11442,7 +11427,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $0 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11451,22 +11436,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -11475,12 +11460,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 local.tee $6 i32.const 1 @@ -11488,8 +11473,8 @@ if (result i32) i32.const 0 else - local.get $0 local.get $3 + local.get $2 i32.load i32.eq end @@ -11497,14 +11482,14 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -11514,14 +11499,13 @@ unreachable end local.get $4 - local.get $0 + local.get $3 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11530,22 +11514,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -11554,12 +11538,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=4 local.tee $6 i32.const 1 @@ -11568,7 +11552,7 @@ i32.const 0 else local.get $3 - local.get $0 + local.get $2 i32.load i32.eq end @@ -11576,14 +11560,14 @@ local.get $6 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -11596,7 +11580,7 @@ local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end @@ -11613,9 +11597,9 @@ unreachable end i32.const 50 - local.set $0 + local.set $3 loop $for-loop|1 - local.get $0 + local.get $3 i32.const 100 i32.lt_u if @@ -11623,7 +11607,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $0 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11632,22 +11616,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -11656,12 +11640,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 local.tee $6 i32.const 1 @@ -11669,8 +11653,8 @@ if (result i32) i32.const 0 else - local.get $0 local.get $3 + local.get $2 i32.load i32.eq end @@ -11678,14 +11662,14 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -11696,14 +11680,13 @@ unreachable end local.get $4 - local.get $0 + local.get $3 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $0 - local.tee $3 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11712,22 +11695,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -11736,12 +11719,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=4 local.tee $6 i32.const 1 @@ -11750,7 +11733,7 @@ i32.const 0 else local.get $3 - local.get $0 + local.get $2 i32.load i32.eq end @@ -11758,14 +11741,14 @@ local.get $6 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.eqz if i32.const 0 @@ -11778,7 +11761,7 @@ local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|1 end end @@ -11809,10 +11792,10 @@ i32.store local.get $4 i32.load offset=8 - local.set $9 + local.set $2 local.get $4 i32.load offset=16 - local.set $3 + local.set $9 local.get $8 i32.const 8 i32.sub @@ -11822,28 +11805,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 16 i32.const 14 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $10 i32.store - local.get $6 + local.get $10 i32.const 0 i32.store - local.get $6 + local.get $10 i32.const 0 i32.store offset=4 - local.get $6 + local.get $10 i32.const 0 i32.store offset=8 - local.get $6 + local.get $10 i32.const 0 i32.store offset=12 - local.get $3 + local.get $9 i32.const 268435455 i32.gt_u if @@ -11855,70 +11838,69 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $9 i32.const 8 - local.get $3 + local.get $9 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $10 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.store offset=4 + local.get $10 local.get $6 - local.get $0 i32.store - local.get $0 + local.get $6 if + local.get $10 local.get $6 - local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $10 local.get $6 - local.get $0 i32.store offset=4 - local.get $6 local.get $10 - i32.store offset=8 - local.get $6 local.get $3 + i32.store offset=8 + local.get $10 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $8 - local.get $6 + local.get $10 i32.store loop $for-loop|02 - local.get $3 local.get $5 - i32.gt_s + local.get $9 + i32.lt_s if local.get $5 i32.const 3 i32.shl - local.get $9 + local.get $2 i32.add - local.tee $8 + local.tee $3 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $6 + local.get $10 local.get $0 - local.get $8 + local.get $3 i32.load call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end local.get $5 i32.const 1 @@ -11927,35 +11909,35 @@ br $for-loop|02 end end - local.get $6 - local.get $2 + local.get $10 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 - local.get $2 + local.get $10 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $7 - local.get $6 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $0 i32.store offset=8 loop $for-loop|2 - local.get $6 + local.get $10 i32.load offset=12 local.get $1 i32.gt_s if - local.get $6 + local.get $10 local.get $1 call $~lib/array/Array#__get - local.tee $3 + local.tee $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11964,27 +11946,27 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $2 + local.set $3 local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 16 i32.shr_u i32.xor @@ -11993,12 +11975,12 @@ i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 local.tee $5 i32.const 1 @@ -12006,8 +11988,8 @@ if (result i32) i32.const 0 else - local.get $3 local.get $2 + local.get $3 i32.load i32.eq end @@ -12015,14 +11997,14 @@ local.get $5 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.eqz if i32.const 0 @@ -12033,7 +12015,7 @@ unreachable end local.get $0 - local.get $6 + local.get $10 local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -12069,6 +12051,7 @@ local.get $4 i32.load offset=4 local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12077,22 +12060,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12101,12 +12084,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 local.tee $2 i32.const 1 @@ -12114,8 +12097,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -12123,14 +12106,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -12141,14 +12124,13 @@ unreachable end local.get $4 - local.get $1 + local.get $0 call $~lib/set/Set#delete local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12250,6 +12232,7 @@ local.get $4 i32.load offset=4 local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12258,22 +12241,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12282,12 +12265,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 local.tee $2 i32.const 1 @@ -12295,8 +12278,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -12304,14 +12287,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -12321,13 +12304,13 @@ unreachable end local.get $4 - local.get $1 + local.get $0 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12336,22 +12319,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12360,12 +12343,12 @@ i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 local.tee $2 i32.const 1 @@ -12373,8 +12356,8 @@ if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end @@ -12382,14 +12365,14 @@ local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|023 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -12400,14 +12383,13 @@ unreachable end local.get $4 - local.get $1 + local.get $0 call $~lib/set/Set#delete local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13170,7 +13152,7 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13178,10 +13160,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -13192,23 +13173,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 call $~lib/set/Set#constructor local.tee $2 i32.store loop $for-loop|0 - local.get $9 + local.get $1 i64.const 100 i64.lt_s if local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13219,10 +13200,10 @@ unreachable end local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#add local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13233,10 +13214,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $1 i64.const 1 i64.add - local.set $9 + local.set $1 br $for-loop|0 end end @@ -13253,14 +13234,14 @@ unreachable end i64.const 50 - local.set $9 + local.set $1 loop $for-loop|1 - local.get $9 + local.get $1 i64.const 100 i64.lt_s if local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13272,10 +13253,10 @@ unreachable end local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#add local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13286,10 +13267,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $1 i64.const 1 i64.add - local.set $9 + local.set $1 br $for-loop|1 end end @@ -13306,7 +13287,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $7 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13320,11 +13301,10 @@ i32.store local.get $2 i32.load offset=8 - local.set $4 + local.set $8 local.get $2 i32.load offset=16 - local.tee $3 - local.set $10 + local.set $3 local.get $6 i32.const 8 i32.sub @@ -13334,28 +13314,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $9 i64.const 0 i64.store - local.get $1 + local.get $9 i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store - local.get $11 + local.get $10 i32.const 0 i32.store - local.get $11 + local.get $10 i32.const 0 i32.store offset=4 - local.get $11 + local.get $10 i32.const 0 i32.store offset=8 - local.get $11 + local.get $10 i32.const 0 i32.store offset=12 - local.get $10 + local.get $3 i32.const 134217727 i32.gt_u if @@ -13367,53 +13347,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $3 i32.const 8 - local.get $10 + local.get $3 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $1 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $11 i32.store offset=4 + local.get $10 local.get $11 - local.get $12 i32.store - local.get $12 + local.get $11 if + local.get $10 local.get $11 - local.get $12 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $10 local.get $11 - local.get $12 i32.store offset=4 - local.get $11 - local.get $1 + local.get $10 + local.get $9 i32.store offset=8 - local.get $11 local.get $10 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $11 + local.get $10 i32.store loop $for-loop|02 local.get $3 - local.get $7 + local.get $5 i32.gt_s if - local.get $7 + local.get $5 i32.const 4 i32.shl - local.get $4 + local.get $8 i32.add local.tee $6 i32.load offset=8 @@ -13421,52 +13401,51 @@ i32.and i32.eqz if + local.get $10 local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $11 - local.get $1 local.get $6 i64.load call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|02 end end - local.get $11 + local.get $10 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $11 + local.get $10 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $11 + local.get $7 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $0 i32.store offset=8 loop $for-loop|2 - local.get $11 + local.get $10 i32.load offset=12 - local.get $8 + local.get $4 i32.gt_s if local.get $2 - local.get $11 - local.get $8 + local.get $10 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -13479,14 +13458,14 @@ unreachable end local.get $0 - local.get $11 - local.get $8 + local.get $10 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|2 end end @@ -13504,14 +13483,14 @@ unreachable end i64.const 0 - local.set $9 + local.set $1 loop $for-loop|3 - local.get $9 + local.get $1 i64.const 50 i64.lt_s if local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13523,10 +13502,10 @@ unreachable end local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#delete local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13536,10 +13515,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $1 i64.const 1 i64.add - local.set $9 + local.set $1 br $for-loop|3 end end @@ -13556,14 +13535,14 @@ unreachable end i64.const 0 - local.set $9 + local.set $1 loop $for-loop|4 - local.get $9 + local.get $1 i64.const 50 i64.lt_s if local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13574,10 +13553,10 @@ unreachable end local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#add local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13589,10 +13568,10 @@ unreachable end local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#delete local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13602,10 +13581,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $1 i64.const 1 i64.add - local.set $9 + local.set $1 br $for-loop|4 end end @@ -14218,7 +14197,7 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i32) + (local $1 i64) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14226,10 +14205,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14240,23 +14218,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 call $~lib/set/Set#constructor local.tee $2 i32.store loop $for-loop|0 - local.get $9 + local.get $1 i64.const 100 i64.lt_u if local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14267,10 +14245,10 @@ unreachable end local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#add local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14281,10 +14259,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $1 i64.const 1 i64.add - local.set $9 + local.set $1 br $for-loop|0 end end @@ -14301,14 +14279,14 @@ unreachable end i64.const 50 - local.set $9 + local.set $1 loop $for-loop|1 - local.get $9 + local.get $1 i64.const 100 i64.lt_u if local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14320,10 +14298,10 @@ unreachable end local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#add local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14334,10 +14312,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $1 i64.const 1 i64.add - local.set $9 + local.set $1 br $for-loop|1 end end @@ -14354,7 +14332,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $7 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14368,11 +14346,10 @@ i32.store local.get $2 i32.load offset=8 - local.set $4 + local.set $8 local.get $2 i32.load offset=16 - local.tee $3 - local.set $10 + local.set $3 local.get $6 i32.const 8 i32.sub @@ -14382,28 +14359,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $9 i64.const 0 i64.store - local.get $1 + local.get $9 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store - local.get $11 + local.get $10 i32.const 0 i32.store - local.get $11 + local.get $10 i32.const 0 i32.store offset=4 - local.get $11 + local.get $10 i32.const 0 i32.store offset=8 - local.get $11 + local.get $10 i32.const 0 i32.store offset=12 - local.get $10 + local.get $3 i32.const 134217727 i32.gt_u if @@ -14415,53 +14392,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $3 i32.const 8 - local.get $10 + local.get $3 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $1 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $11 i32.store offset=4 + local.get $10 local.get $11 - local.get $12 i32.store - local.get $12 + local.get $11 if + local.get $10 local.get $11 - local.get $12 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $10 local.get $11 - local.get $12 i32.store offset=4 - local.get $11 - local.get $1 + local.get $10 + local.get $9 i32.store offset=8 - local.get $11 local.get $10 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $11 + local.get $10 i32.store loop $for-loop|02 local.get $3 - local.get $7 + local.get $5 i32.gt_s if - local.get $7 + local.get $5 i32.const 4 i32.shl - local.get $4 + local.get $8 i32.add local.tee $6 i32.load offset=8 @@ -14469,52 +14446,51 @@ i32.and i32.eqz if + local.get $10 local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $11 - local.get $1 local.get $6 i64.load call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|02 end end - local.get $11 + local.get $10 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $11 + local.get $10 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $11 + local.get $7 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $0 i32.store offset=8 loop $for-loop|2 - local.get $11 + local.get $10 i32.load offset=12 - local.get $8 + local.get $4 i32.gt_s if local.get $2 - local.get $11 - local.get $8 + local.get $10 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -14527,14 +14503,14 @@ unreachable end local.get $0 - local.get $11 - local.get $8 + local.get $10 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|2 end end @@ -14552,14 +14528,14 @@ unreachable end i64.const 0 - local.set $9 + local.set $1 loop $for-loop|3 - local.get $9 + local.get $1 i64.const 50 i64.lt_u if local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14571,10 +14547,10 @@ unreachable end local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#delete local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14584,10 +14560,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $1 i64.const 1 i64.add - local.set $9 + local.set $1 br $for-loop|3 end end @@ -14604,14 +14580,14 @@ unreachable end i64.const 0 - local.set $9 + local.set $1 loop $for-loop|4 - local.get $9 + local.get $1 i64.const 50 i64.lt_u if local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14622,10 +14598,10 @@ unreachable end local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#add local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14637,10 +14613,10 @@ unreachable end local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#delete local.get $2 - local.get $9 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14650,10 +14626,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $1 i64.const 1 i64.add - local.set $9 + local.set $1 br $for-loop|4 end end @@ -14772,6 +14748,7 @@ local.tee $8 f32.store local.get $2 + local.get $1 local.get $8 i32.reinterpret_f32 i32.const -1028477379 @@ -14783,25 +14760,24 @@ i32.const 668265263 i32.mul local.tee $9 - local.get $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 - local.get $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 - local.get $9 i32.const 16 i32.shr_u + local.get $9 i32.xor - local.get $1 i32.and i32.const 2 i32.shl @@ -15652,20 +15628,20 @@ i32.shl local.get $8 i32.add - local.tee $0 + local.tee $3 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $0 - f32.load - local.set $2 local.get $1 local.tee $0 i32.const 1 i32.add local.set $1 + local.get $3 + f32.load + local.set $2 local.get $6 i32.load offset=12 local.get $0 @@ -16895,8 +16871,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f64) + (local $3 f64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -16904,7 +16880,6 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -16923,15 +16898,15 @@ i32.store offset=8 local.get $1 call $~lib/set/Set#constructor - local.tee $3 + local.tee $2 i32.store loop $for-loop|0 - local.get $4 + local.get $3 f64.const 100 f64.lt if + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#has if i32.const 0 @@ -16941,11 +16916,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#add + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#has i32.eqz if @@ -16956,14 +16931,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|0 end end - local.get $3 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -16976,14 +16951,14 @@ unreachable end f64.const 50 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 + local.get $3 f64.const 100 f64.lt if + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#has i32.eqz if @@ -16994,11 +16969,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#add + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#has i32.eqz if @@ -17009,14 +16984,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|1 end end - local.get $3 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -17038,17 +17013,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $9 i32.const 0 i32.store - local.get $3 + local.get $2 i32.load offset=8 - local.set $6 - local.get $3 + local.set $8 + local.get $2 i32.load offset=16 - local.tee $5 - local.set $11 - local.get $8 + local.set $4 + local.get $9 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17064,21 +17038,21 @@ i32.const 16 i32.const 22 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $10 i32.store - local.get $2 + local.get $10 i32.const 0 i32.store - local.get $2 + local.get $10 i32.const 0 i32.store offset=4 - local.get $2 + local.get $10 i32.const 0 i32.store offset=8 - local.get $2 + local.get $10 i32.const 0 i32.store offset=12 - local.get $11 + local.get $4 i32.const 134217727 i32.gt_u if @@ -17090,9 +17064,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $4 i32.const 8 - local.get $11 + local.get $4 i32.const 8 i32.gt_u select @@ -17101,58 +17075,58 @@ local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $11 i32.store offset=4 - local.get $2 - local.get $12 + local.get $10 + local.get $11 i32.store - local.get $12 + local.get $11 if - local.get $2 - local.get $12 + local.get $10 + local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 - local.get $12 + local.get $10 + local.get $11 i32.store offset=4 - local.get $2 + local.get $10 local.get $1 i32.store offset=8 - local.get $2 - local.get $11 + local.get $10 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $2 + local.get $9 + local.get $10 i32.store loop $for-loop|02 - local.get $5 - local.get $9 + local.get $4 + local.get $6 i32.gt_s if - local.get $9 + local.get $6 i32.const 4 i32.shl - local.get $6 + local.get $8 i32.add - local.tee $1 + local.tee $9 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 - f64.load - local.set $4 local.get $0 local.tee $1 i32.const 1 i32.add local.set $0 - local.get $2 + local.get $9 + f64.load + local.set $3 + local.get $10 i32.load offset=12 local.get $1 i32.le_u @@ -17168,40 +17142,40 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $10 local.get $1 i32.const 1 i32.add - local.tee $8 + local.tee $9 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $2 - local.get $8 + local.get $10 + local.get $9 i32.store offset=12 end - local.get $2 + local.get $10 i32.load offset=4 local.get $1 i32.const 3 i32.shl i32.add - local.get $4 + local.get $3 f64.store end - local.get $9 + local.get $6 i32.const 1 i32.add - local.set $9 + local.set $6 br $for-loop|02 end end - local.get $2 + local.get $10 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 + local.get $10 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -17209,21 +17183,21 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $7 - local.get $2 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $0 i32.store offset=8 loop $for-loop|2 - local.get $2 - i32.load offset=12 local.get $10 + i32.load offset=12 + local.get $5 i32.gt_s if - local.get $3 local.get $2 local.get $10 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -17236,20 +17210,20 @@ unreachable end local.get $0 - local.get $2 local.get $10 + local.get $5 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $10 + local.get $5 i32.const 1 i32.add - local.set $10 + local.set $5 br $for-loop|2 end end local.get $0 i32.load offset=20 - local.get $3 + local.get $2 i32.load offset=20 i32.ne if @@ -17261,14 +17235,14 @@ unreachable end f64.const 0 - local.set $4 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 f64.const 50 f64.lt if + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#has i32.eqz if @@ -17279,11 +17253,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#delete + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#has if i32.const 0 @@ -17293,14 +17267,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|3 end end - local.get $3 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -17313,14 +17287,14 @@ unreachable end f64.const 0 - local.set $4 + local.set $3 loop $for-loop|4 - local.get $4 + local.get $3 f64.const 50 f64.lt if + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#has if i32.const 0 @@ -17330,11 +17304,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#add + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#has i32.eqz if @@ -17345,11 +17319,11 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#delete + local.get $2 local.get $3 - local.get $4 call $~lib/set/Set#has if i32.const 0 @@ -17359,14 +17333,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 f64.const 1 f64.add - local.set $4 + local.set $3 br $for-loop|4 end end - local.get $3 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -17378,9 +17352,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 call $~lib/set/Set#clear - local.get $3 + local.get $2 i32.load offset=20 if i32.const 0 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index e821382cba..02c88189dd 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -239,6 +239,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -783,12 +785,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -806,11 +808,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18400 @@ -818,14 +820,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -835,17 +837,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -862,116 +864,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18396 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -982,146 +911,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18396 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1696 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18396 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18396 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18396 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1904 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1904 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index f98edcb496..2ff50517a6 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -374,6 +374,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -918,12 +920,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -941,11 +943,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 20256 @@ -953,14 +955,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -970,17 +972,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1047,116 +1049,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 20252 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1167,102 +1096,177 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 20252 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1408 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 20252 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1408 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free + i32.const 20252 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3995,10 +3999,10 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f32) - (local $12 f64) - (local $13 i32) - (local $14 i32) + (local $11 i32) + (local $12 i32) + (local $13 f32) + (local $14 f64) (local $15 i32) (local $16 i32) (local $17 i32) @@ -4336,7 +4340,7 @@ i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $21 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4358,6 +4362,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $21 local.get $22 i32.store offset=4 local.get $22 @@ -4383,11 +4388,11 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.get $1 + local.get $2 i32.gt_s if local.get $22 - local.get $1 + local.get $2 call $~lib/staticarray/StaticArray#__get if i32.const 0 @@ -4397,10 +4402,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end @@ -4409,16 +4414,16 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.tee $1 + local.tee $21 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $21 call $~lib/staticarray/StaticArray.fromArray - local.tee $21 + local.tee $22 i32.store offset=4 - local.get $1 - i32.load offset=12 local.get $21 + i32.load offset=12 + local.get $22 i32.const 20 i32.sub i32.load offset=16 @@ -4433,17 +4438,19 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $21 i32.load offset=12 - local.get $0 + local.get $2 i32.gt_s if - local.get $21 - local.get $0 + local.get $22 + local.get $2 call $~lib/staticarray/StaticArray#__get - local.get $1 - local.get $0 + local.get $21 + local.get $2 call $~lib/array/Array#__get i32.ne if @@ -4454,10 +4461,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end @@ -4466,15 +4473,15 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $1 + local.set $21 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $21 i32.store - local.get $1 + local.get $21 call $~lib/staticarray/StaticArray.fromArray - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4492,29 +4499,29 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $21 i32.const 1856 i32.const 8 call $~lib/memory/memory.copy - local.get $0 + local.get $21 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 3 call $~lib/rt/itcms/__new - local.tee $21 + local.tee $22 i32.const 1888 i32.const 4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $22 i32.store offset=12 - local.get $0 local.get $21 + local.get $22 call $~lib/staticarray/StaticArray.concat - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4534,25 +4541,25 @@ i32.const 0 i32.const 3 call $~lib/rt/itcms/__new - local.tee $21 + local.tee $22 i32.const 1920 i32.const 0 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $22 i32.store offset=12 - local.get $0 local.get $21 + local.get $22 call $~lib/staticarray/StaticArray.concat - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $0 + local.get $21 i32.const 20 i32.sub i32.load offset=16 @@ -4571,26 +4578,26 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $21 i32.const 2128 i32.const 20 call $~lib/memory/memory.copy - local.get $1 + local.get $21 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $21 i32.const 0 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $21 + local.tee $2 i32.store offset=4 - local.get $21 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $1 + local.get $21 i32.const 20 i32.sub i32.load offset=16 @@ -4605,27 +4612,25 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $0 loop $for-loop|2 - local.get $1 + local.get $21 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $0 + local.get $9 i32.gt_s if - local.get $1 - local.get $0 + local.get $21 + local.get $9 call $~lib/staticarray/StaticArray<~lib/string/String>#__get local.set $22 global.get $~lib/memory/__stack_pointer local.get $22 i32.store - local.get $21 - local.get $0 + local.get $2 + local.get $9 call $~lib/staticarray/StaticArray<~lib/string/String>#__get local.set $23 global.get $~lib/memory/__stack_pointer @@ -4643,21 +4648,21 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $21 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4673,18 +4678,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $21 + local.set $9 global.get $~lib/memory/__stack_pointer local.tee $22 - local.get $21 + local.get $9 i32.store local.get $22 i32.const 1984 i32.store offset=12 - local.get $21 + local.get $9 i32.const 1984 call $~lib/string/String.__eq i32.eqz @@ -4696,18 +4701,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $21 - local.get $0 + local.tee $9 + local.get $2 i32.store - local.get $21 + local.get $9 i32.const 2016 i32.store offset=12 - local.get $0 + local.get $2 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4720,13 +4725,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $21 i32.const 1 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $21 i32.const 20 i32.sub i32.load offset=16 @@ -4734,7 +4739,7 @@ i32.shr_u i32.const 1 i32.sub - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4750,19 +4755,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $21 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $1 + local.get $21 i32.const 20 i32.sub i32.load offset=16 @@ -4778,13 +4783,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $21 i32.const 100 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4799,13 +4804,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $21 i32.const -1 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4821,18 +4826,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $21 - local.get $0 + local.tee $9 + local.get $2 i32.store - local.get $21 + local.get $9 i32.const 2080 i32.store offset=12 - local.get $0 + local.get $2 i32.const 2080 call $~lib/string/String.__eq i32.eqz @@ -4845,13 +4850,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $21 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4866,13 +4871,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $21 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4888,18 +4893,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $9 + local.get $2 i32.store - local.get $1 + local.get $9 i32.const 2016 i32.store offset=12 - local.get $0 + local.get $2 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4915,11 +4920,11 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $9 i32.const 2304 i32.const 20 call $~lib/memory/memory.copy - local.get $1 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 0 @@ -4930,14 +4935,14 @@ global.get $~lib/memory/__stack_pointer local.get $21 i32.store offset=12 - local.get $1 + local.get $9 local.get $21 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $0 + local.tee $2 i32.store offset=16 - local.get $0 + local.get $2 i32.load offset=12 - local.get $1 + local.get $9 i32.const 20 i32.sub i32.load offset=16 @@ -4961,14 +4966,14 @@ global.get $~lib/memory/__stack_pointer local.get $21 i32.store offset=12 - local.get $1 + local.get $9 local.get $21 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $0 + local.tee $2 i32.store offset=16 - local.get $0 + local.get $2 i32.load offset=12 - local.get $1 + local.get $9 i32.const 20 i32.sub i32.load offset=16 @@ -4989,16 +4994,16 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $9 i32.const 2448 i32.const 20 call $~lib/memory/memory.copy - local.get $1 + local.get $9 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 1984 i32.store offset=12 - local.get $1 + local.get $9 i32.const 1984 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5015,7 +5020,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2384 i32.store offset=12 - local.get $1 + local.get $9 i32.const 2384 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5030,7 +5035,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $1 + local.get $9 i32.const 2080 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5045,7 +5050,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $1 + local.get $9 i32.const 2080 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5063,49 +5068,49 @@ i32.const 8 i32.const 10 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.const 2496 i32.const 8 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 3 i32.shr_u - local.tee $1 + local.tee $9 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|0 - local.get $1 - local.get $7 - i32.gt_s + local.get $5 + local.get $9 + i32.lt_s if i32.const 1 - local.get $7 + local.get $5 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add f64.load - local.tee $12 + local.tee $14 f64.const nan:0x8000000000000 f64.eq - local.get $12 - local.get $12 + local.get $14 + local.get $14 f64.ne i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $while-continue|0 end end @@ -5124,49 +5129,49 @@ i32.const 4 i32.const 11 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.const 2528 i32.const 4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $5 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|09 - local.get $1 - local.get $8 + local.get $5 + local.get $10 i32.gt_s if i32.const 1 - local.get $8 + local.get $10 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add f32.load - local.tee $11 + local.tee $13 f32.const nan:0x400000 f32.eq - local.get $11 - local.get $11 + local.get $13 + local.get $13 f32.ne i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $8 + local.get $10 i32.const 1 i32.add - local.set $8 + local.set $10 br $while-continue|09 end end @@ -5185,50 +5190,50 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $5 i32.const 2560 i32.const 12 call $~lib/memory/memory.copy - local.get $7 + local.get $5 i32.store offset=16 i32.const -1 - local.set $0 + local.set $2 block $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $7 + local.get $5 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $9 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf loop $while-continue|012 - local.get $1 - local.get $2 - i32.gt_s + local.get $0 + local.get $9 + i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $2 i32.const 2 i32.shl - local.get $7 + local.get $5 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if i32.const 0 i32.const 1216 @@ -5240,25 +5245,25 @@ i32.const -1 local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#indexOf13 - local.get $7 + local.get $5 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf13 loop $while-continue|028 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 + local.get $1 local.tee $0 i32.const 2 i32.shl - local.get $7 + local.get $5 i32.add i32.load i32.const 7 @@ -5267,7 +5272,7 @@ local.get $0 i32.const 1 i32.add - local.set $3 + local.set $1 br $while-continue|028 end end @@ -5286,11 +5291,11 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#indexOf29 - local.get $7 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -5304,31 +5309,31 @@ select br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf29 loop $while-continue|033 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $7 + local.get $5 i32.add i32.load i32.const 9 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf29 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 2 i32.ne if @@ -5340,56 +5345,52 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf34 - local.get $7 + local.get $5 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 - i32.const 0 - i32.lt_u - i32.const 1 - local.get $1 - select + local.tee $0 + i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf34 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 loop $while-continue|037 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $5 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf34 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|037 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -5403,7 +5404,7 @@ i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf38 - local.get $7 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -5434,7 +5435,7 @@ local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $5 i32.add i32.load i32.const 2 @@ -5463,15 +5464,15 @@ i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $5 i32.const 2592 i32.const 16 call $~lib/memory/memory.copy - local.get $2 + local.get $5 i32.store offset=16 i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -5481,41 +5482,41 @@ i32.const -1 local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf - local.get $2 + local.get $5 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf local.get $1 - local.get $3 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub local.get $1 local.get $1 - local.get $3 + local.get $2 i32.ge_s select local.get $1 i32.const 0 i32.lt_s select - local.set $1 + local.set $2 loop $while-continue|01 - local.get $1 + local.get $2 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 local.tee $0 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add i32.load i32.const 2 @@ -5524,7 +5525,7 @@ local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $2 br $while-continue|01 end end @@ -5544,14 +5545,14 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $5 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u local.tee $1 - local.set $3 + local.set $2 i32.const -1 local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 @@ -5559,31 +5560,31 @@ i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 local.get $1 - local.get $3 + local.get $2 i32.add local.get $1 i32.const 1 i32.sub - local.get $3 + local.get $2 local.get $1 - local.get $3 + local.get $2 i32.le_s select - local.get $3 + local.get $2 i32.const 0 i32.lt_s select - local.set $1 + local.set $2 loop $while-continue|07 - local.get $1 + local.get $2 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 local.tee $0 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add i32.load i32.const 7 @@ -5592,7 +5593,7 @@ local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $2 br $while-continue|07 end end @@ -5611,9 +5612,9 @@ unreachable end i32.const -1 - local.set $7 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf8 - local.get $2 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -5628,34 +5629,35 @@ i32.const 3 local.get $0 i32.const 3 - i32.le_s + i32.le_u select - local.set $7 + local.set $0 loop $while-continue|044 - local.get $7 + local.get $0 i32.const 0 i32.ge_s if - local.get $7 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf8 - local.get $7 + local.get $1 i32.const 1 i32.sub - local.set $7 + local.set $0 br $while-continue|044 end end i32.const -1 - local.set $7 + local.set $1 end - local.get $7 + local.get $1 i32.const 3 i32.ne if @@ -5667,9 +5669,9 @@ unreachable end i32.const -1 - local.set $7 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 - local.get $2 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -5684,34 +5686,35 @@ i32.const 2 local.get $0 i32.const 2 - i32.le_s + i32.le_u select - local.set $7 + local.set $0 loop $while-continue|048 - local.get $7 + local.get $0 i32.const 0 i32.ge_s if - local.get $7 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 - local.get $7 + local.get $1 i32.const 1 i32.sub - local.set $7 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $7 + local.set $1 end - local.get $7 + local.get $1 if i32.const 0 i32.const 1216 @@ -5721,9 +5724,9 @@ unreachable end i32.const -1 - local.set $7 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 - local.get $2 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -5735,32 +5738,32 @@ local.get $0 i32.const 2 i32.sub - local.set $7 + local.set $1 loop $while-continue|052 - local.get $7 + local.get $1 i32.const 0 i32.ge_s if - local.get $7 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 - local.get $7 + local.get $1 i32.const 1 i32.sub - local.set $7 + local.set $1 br $while-continue|052 end end i32.const -1 - local.set $7 + local.set $1 end - local.get $7 + local.get $1 if i32.const 0 i32.const 1216 @@ -5770,9 +5773,9 @@ unreachable end i32.const -1 - local.set $8 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 - local.get $2 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -5784,32 +5787,32 @@ local.get $0 i32.const 1 i32.sub - local.set $8 + local.set $1 loop $while-continue|056 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if - local.get $8 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 - local.get $8 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $while-continue|056 end end i32.const -1 - local.set $8 + local.set $1 end - local.get $8 + local.get $1 i32.const 3 i32.ne if @@ -6018,14 +6021,14 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.const 3104 i32.const 8 call $~lib/memory/memory.copy - local.get $0 + local.get $1 i32.store offset=16 i32.const 1 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -6034,29 +6037,29 @@ local.tee $2 local.get $2 i32.const 1 - i32.gt_s + i32.gt_u select - local.set $1 + local.set $0 loop $for-loop|060 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.const 1 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|060 end end - local.get $0 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -6067,7 +6070,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -6110,35 +6113,35 @@ local.set $0 loop $while-continue|064 local.get $2 - local.get $4 + local.get $8 i32.gt_u if - local.get $4 + local.get $8 i32.const 2 i32.shl local.get $1 i32.add - local.tee $3 + local.tee $5 i32.load - local.set $7 - local.get $3 + local.set $9 + local.get $5 local.get $0 - local.get $4 + local.get $8 i32.sub i32.const 2 i32.shl local.get $1 i32.add - local.tee $3 + local.tee $5 i32.load i32.store - local.get $3 - local.get $7 + local.get $5 + local.get $9 i32.store - local.get $4 + local.get $8 i32.const 1 i32.add - local.set $4 + local.set $8 br $while-continue|064 end end @@ -6199,60 +6202,47 @@ i32.const 2 i32.shr_u local.tee $0 - local.tee $2 - local.set $3 - i32.const 0 - local.get $2 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - i32.const 2 - i32.shl + local.set $2 local.get $1 - i32.add i32.const 3 local.get $0 local.get $0 i32.const 3 - i32.gt_s + i32.gt_u select - local.tee $4 + local.tee $5 i32.const 2 i32.shl local.get $1 i32.add - local.get $3 + local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $0 - local.get $3 + local.get $2 i32.add - local.tee $3 + local.tee $2 i32.const 0 - local.get $3 + local.get $2 i32.const 0 i32.gt_s select else - local.get $3 + local.get $2 local.get $0 local.get $0 - local.get $3 + local.get $2 i32.gt_s select end - local.get $4 + local.get $5 i32.sub - local.tee $3 + local.tee $2 local.get $0 - local.get $2 - i32.sub local.tee $0 local.get $0 - local.get $3 + local.get $2 i32.gt_s select i32.const 2 @@ -6327,17 +6317,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $8 i32.const 3216 i32.const 12 call $~lib/memory/memory.copy - local.get $1 + local.get $8 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 3248 i32.store offset=12 - local.get $2 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6346,55 +6336,54 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 local.get $1 - local.tee $0 + local.get $8 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $3 + local.tee $1 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.load offset=4 - local.set $7 + local.set $5 loop $for-loop|042 - local.get $3 - local.get $5 + local.get $1 + local.get $7 i32.gt_s if - local.get $5 + local.get $7 i32.const 2 i32.shl - local.tee $8 - local.get $0 + local.tee $9 + local.get $8 i32.add i32.load - local.set $21 + local.set $10 i32.const 3 global.set $~argumentsLength + local.get $5 + local.get $9 + i32.add + local.get $10 local.get $7 local.get $8 - i32.add - local.get $21 - local.get $5 - local.get $0 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|042 end end @@ -6402,10 +6391,10 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 local.get $2 - local.get $4 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -6418,7 +6407,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -6431,7 +6420,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 4 @@ -6447,28 +6436,28 @@ global.get $~lib/memory/__stack_pointer i32.const 3280 i32.store offset=12 - local.get $0 + local.get $8 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|070 - local.get $2 + local.get $0 local.get $6 i32.gt_s if local.get $6 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $6 - local.get $0 + local.get $8 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) @@ -6491,10 +6480,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $7 i32.const 3312 i32.store offset=12 - local.get $5 + local.get $7 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6503,61 +6492,59 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store - local.get $0 + local.get $8 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $4 + local.set $9 loop $for-loop|045 - local.get $4 - local.get $18 + local.get $9 + local.get $20 i32.gt_s if - local.get $18 + local.get $20 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load - local.set $6 + local.set $10 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $18 - local.get $0 + local.get $10 + local.get $20 + local.get $8 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $3 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $21 i32.const 1 i32.add - local.tee $8 - local.set $21 - local.get $3 - i32.load offset=8 local.tee $22 + local.get $0 + local.tee $1 + i32.load offset=8 + local.tee $2 i32.const 2 i32.shr_u - local.get $8 - i32.lt_u + i32.gt_u if - local.get $21 + local.get $22 i32.const 268435455 i32.gt_u if @@ -6568,37 +6555,38 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/rt/itcms/__renew (result i32) - local.get $22 + block $__inlined_func$~lib/rt/itcms/__renew + local.get $2 i32.const 1 i32.shl - local.tee $22 + local.tee $2 i32.const 1073741820 - local.get $22 + local.get $2 i32.const 1073741820 i32.lt_u select - local.tee $22 - local.get $21 + local.tee $2 + local.get $22 i32.const 8 - local.get $21 + local.get $22 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $21 - local.get $21 - local.get $22 - i32.lt_u + local.tee $5 + local.get $2 + local.get $5 + i32.gt_u select - local.tee $21 - local.get $3 + local.tee $6 + local.get $1 i32.load - local.tee $22 + local.tee $23 + local.tee $5 i32.const 20 i32.sub - local.tee $23 + local.tee $24 i32.load i32.const -4 i32.and @@ -6606,67 +6594,67 @@ i32.sub i32.le_u if - local.get $23 - local.get $21 + local.get $24 + local.get $6 i32.store offset=16 - local.get $22 + local.get $5 + local.set $2 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $21 - local.get $23 + local.get $6 + local.get $24 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $24 - local.get $22 - local.get $21 - local.get $23 + local.tee $2 + local.get $5 + local.get $6 + local.get $24 i32.load offset=16 - local.tee $23 - local.get $21 - local.get $23 - i32.lt_u + local.tee $5 + local.get $5 + local.get $6 + i32.gt_u select call $~lib/memory/memory.copy - local.get $24 end - local.tee $23 - local.get $22 + local.get $2 + local.get $23 i32.ne if - local.get $3 - local.get $23 + local.get $1 + local.get $2 i32.store - local.get $3 - local.get $23 + local.get $1 + local.get $2 i32.store offset=4 - local.get $23 + local.get $2 if - local.get $3 - local.get $23 + local.get $1 + local.get $2 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end end - local.get $3 - local.get $21 + local.get $1 + local.get $6 i32.store offset=8 end - local.get $3 + local.get $1 i32.load offset=4 - local.get $7 + local.get $21 i32.const 2 i32.shl i32.add - local.get $6 + local.get $10 i32.store - local.get $3 - local.get $8 + local.get $1 + local.get $22 i32.store offset=12 end - local.get $18 + local.get $20 i32.const 1 i32.add - local.set $18 + local.set $20 br $for-loop|045 end end @@ -6674,10 +6662,10 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $2 + local.get $7 + local.get $0 i32.store offset=24 - local.get $2 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -6689,7 +6677,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -6702,7 +6690,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -6718,43 +6706,43 @@ global.get $~lib/memory/__stack_pointer i32.const 3344 i32.store offset=12 - local.get $0 + local.get $8 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|076 - local.get $2 - local.get $17 + local.get $0 + local.get $19 i32.gt_s if - local.get $17 + local.get $19 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load - local.set $3 + local.set $1 i32.const 4 global.set $~argumentsLength - local.get $10 - local.get $3 - local.get $17 - local.get $0 + local.get $12 + local.get $1 + local.get $19 + local.get $8 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $10 - local.get $17 + local.set $12 + local.get $19 i32.const 1 i32.add - local.set $17 + local.set $19 br $for-loop|076 end end - local.get $10 + local.get $12 i32.const 6 i32.ne if @@ -6768,7 +6756,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3376 i32.store offset=12 - local.get $1 + local.get $8 i32.const 20 i32.sub i32.load offset=16 @@ -6776,37 +6764,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $8 + local.set $0 loop $for-loop|080 - local.get $8 + local.get $0 i32.const 0 i32.ge_s if - local.get $8 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load - local.set $2 + local.set $1 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $2 - local.get $8 + local.get $11 + local.get $1 local.get $0 + local.get $8 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $8 + local.set $11 + local.get $0 i32.const 1 i32.sub - local.set $8 + local.set $0 br $for-loop|080 end end - local.get $9 + local.get $11 i32.const 6 i32.ne if @@ -6821,40 +6809,40 @@ global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=12 - local.get $1 + local.get $8 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|084 - local.get $2 - local.get $16 + local.get $0 + local.get $18 i32.gt_s if - local.get $16 + local.get $18 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load - local.set $3 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 - local.get $16 - local.get $0 + local.get $1 + local.get $18 + local.get $8 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#some drop - local.get $16 + local.get $18 i32.const 1 i32.add - local.set $16 + local.set $18 br $for-loop|084 end end @@ -6873,40 +6861,40 @@ global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store offset=12 - local.get $1 + local.get $8 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|089 - local.get $2 - local.get $15 + local.get $0 + local.get $17 i32.gt_s if - local.get $15 + local.get $17 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load - local.set $3 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 - local.get $15 - local.get $0 + local.get $1 + local.get $17 + local.get $8 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#some86 drop - local.get $15 + local.get $17 i32.const 1 i32.add - local.set $15 + local.set $17 br $for-loop|089 end end @@ -6924,41 +6912,41 @@ global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=12 - local.get $1 + local.get $8 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|093 - local.get $2 - local.get $14 + local.get $0 + local.get $16 i32.gt_s if - local.get $14 + local.get $16 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load - local.set $3 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 - local.get $14 - local.get $0 + local.get $1 + local.get $16 + local.get $8 i32.const 3472 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#every drop - local.get $14 + local.get $16 i32.const 1 i32.add - local.set $14 + local.set $16 br $for-loop|093 end end @@ -6977,41 +6965,41 @@ global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store offset=12 - local.get $1 + local.get $8 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|098 - local.get $2 - local.get $13 + local.get $0 + local.get $15 i32.gt_s if - local.get $13 + local.get $15 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load - local.set $3 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 - local.get $13 - local.get $0 + local.get $1 + local.get $15 + local.get $8 i32.const 3504 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#every95 drop - local.get $13 + local.get $15 i32.const 1 i32.add - local.set $13 + local.set $15 br $for-loop|098 end end @@ -7028,44 +7016,45 @@ global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=12 - local.get $1 + local.get $8 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 + local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#findIndex loop $for-loop|0102 - local.get $2 - local.get $20 + local.get $0 + local.get $4 i32.gt_s if - local.get $20 + local.get $4 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $20 - local.get $0 + local.get $4 + local.tee $1 + local.get $8 i32.const 3536 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex - local.get $20 + local.get $1 i32.const 1 i32.add - local.set $20 + local.set $4 br $for-loop|0102 end end i32.const -1 - local.set $20 + local.set $1 end - local.get $20 + local.get $1 i32.const 1 i32.ne if @@ -7079,44 +7068,45 @@ global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=12 - local.get $1 + local.get $8 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 + local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#findIndex104 loop $for-loop|0107 - local.get $2 - local.get $19 + local.get $0 + local.get $3 i32.gt_s if - local.get $19 + local.get $3 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $19 - local.get $0 + local.get $3 + local.tee $1 + local.get $8 i32.const 3568 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex104 - local.get $19 + local.get $1 i32.const 1 i32.add - local.set $19 + local.set $3 br $for-loop|0107 end end i32.const -1 - local.set $19 + local.set $1 end - local.get $19 + local.get $1 i32.const -1 i32.ne if @@ -7130,7 +7120,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store offset=12 - local.get $1 + local.get $8 i32.const 20 i32.sub i32.load offset=16 @@ -7138,38 +7128,38 @@ i32.shr_u i32.const 1 i32.sub - local.set $8 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex loop $for-loop|0111 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if - local.get $8 + local.get $1 i32.const 2 i32.shl - local.get $0 + local.get $8 i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $1 local.get $8 - local.get $0 i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex - local.get $8 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|0111 end end i32.const -1 - local.set $8 + local.set $1 end - local.get $8 + local.get $1 i32.const 1 i32.ne if @@ -7183,7 +7173,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store offset=12 - local.get $1 + local.get $8 i32.const 20 i32.sub i32.load offset=16 @@ -7191,38 +7181,38 @@ i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex113 loop $for-loop|0116 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $8 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 + local.get $8 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex113 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0116 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -7555,7 +7545,7 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.tee $2 + local.tee $3 local.get $1 i32.const 20 i32.sub @@ -7565,7 +7555,7 @@ i32.const 0 local.get $1 select - local.tee $3 + local.tee $2 i32.add local.tee $4 i32.const 268435455 @@ -7588,7 +7578,7 @@ i32.store local.get $4 local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.shl local.tee $0 @@ -7597,7 +7587,7 @@ local.get $4 i32.add local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -7634,13 +7624,13 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $3 + local.set $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -7650,9 +7640,9 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end @@ -7663,7 +7653,7 @@ i32.lt_s if (result i32) local.get $2 - local.get $3 + local.get $4 i32.add local.tee $2 i32.const 0 @@ -7673,9 +7663,9 @@ select else local.get $2 - local.get $3 + local.get $4 local.get $2 - local.get $3 + local.get $4 i32.lt_s select end @@ -7692,41 +7682,39 @@ local.tee $2 i32.const 8 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store local.get $1 i32.const 2 i32.shl local.get $0 i32.add - local.set $1 - i32.const 0 local.set $0 loop $while-continue|0 - local.get $0 local.get $2 - i32.lt_u + local.get $3 + i32.gt_u if - local.get $0 local.get $3 + local.get $4 i32.add local.get $0 - local.get $1 + local.get $3 i32.add i32.load - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 if - local.get $3 local.get $4 + local.get $1 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $3 i32.const 4 i32.add - local.set $0 + local.set $3 br $while-continue|0 end end @@ -7734,7 +7722,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -7803,6 +7791,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7827,15 +7816,15 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.tee $4 + local.tee $5 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select - local.tee $5 + local.tee $6 i32.add - local.tee $3 + local.tee $4 i32.const 268435455 i32.gt_u if @@ -7847,85 +7836,83 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.const 2 i32.shl - local.set $4 + local.set $5 loop $for-loop|0 - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.lt_u if - local.get $2 local.get $3 + local.get $4 i32.add local.get $0 - local.get $2 + local.get $3 i32.add i32.load - local.tee $7 + local.tee $8 i32.store - local.get $7 + local.get $8 if - local.get $6 local.get $7 + local.get $8 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $3 i32.const 4 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end - local.get $3 local.get $4 + local.get $5 i32.add - local.set $2 + local.set $0 local.get $1 i32.load offset=4 local.set $1 - local.get $5 + local.get $6 i32.const 2 i32.shl local.set $3 - i32.const 0 - local.set $0 loop $for-loop|1 - local.get $0 + local.get $2 local.get $3 i32.lt_u if local.get $0 local.get $2 i32.add - local.get $0 local.get $1 + local.get $2 i32.add i32.load local.tee $4 i32.store local.get $4 if - local.get $6 + local.get $7 local.get $4 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end @@ -7933,7 +7920,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 ) (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -8030,6 +8017,7 @@ end end global.get $~lib/memory/__stack_pointer + local.get $6 local.get $2 i32.const 20 i32.sub @@ -8037,7 +8025,6 @@ i32.const 1 i32.shr_u local.tee $1 - local.get $6 i32.mul local.get $3 i32.add diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index f021a85f2e..4e7dce3c6a 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -1048,12 +1048,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -1071,11 +1071,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 37488 @@ -1083,14 +1083,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -1100,17 +1100,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1127,116 +1127,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 37476 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1247,146 +1174,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 37476 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 37476 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 37476 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 37476 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3319,7 +3321,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 19200 - local.set $1 + local.set $2 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 @@ -3339,7 +3341,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $2 local.tee $1 i32.const 100000 i32.lt_u @@ -3393,10 +3394,10 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 local.get $2 + local.get $1 local.get $4 call $~lib/util/number/utoa32_dec_lut else @@ -3453,25 +3454,25 @@ end local.get $3 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $while-continue|0 local.get $0 i64.const 100000000 i64.ge_u if - local.get $2 + local.get $1 i32.const 4 i32.sub - local.tee $2 + local.tee $1 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add local.get $0 local.get $0 @@ -3505,13 +3506,13 @@ i64.shl i64.or i64.store - local.get $2 + local.get $1 i32.const 4 i32.sub - local.tee $2 + local.tee $1 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add local.get $4 i32.const 10000 @@ -3539,15 +3540,15 @@ br $while-continue|0 end end - local.get $1 + local.get $2 local.get $0 i32.wrap_i64 - local.get $2 + local.get $1 call $~lib/util/number/utoa32_dec_lut end local.get $3 if - local.get $1 + local.get $2 i32.const 45 i32.store16 end @@ -3556,7 +3557,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $1 + local.get $2 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3582,6 +3583,7 @@ i32.store block $__inlined_func$~lib/string/String#concat local.get $0 + local.tee $2 i32.const 20 i32.sub i32.load offset=16 @@ -3600,7 +3602,7 @@ i32.shl local.tee $4 i32.add - local.tee $2 + local.tee $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3608,20 +3610,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1056 - local.set $2 + local.set $0 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 local.get $3 call $~lib/memory/memory.copy - local.get $2 + local.get $0 local.get $3 i32.add local.get $1 @@ -3632,7 +3634,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $2 + local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -3701,7 +3703,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $8 + local.tee $6 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3712,12 +3714,12 @@ return end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.const 6 i32.mul i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer i32.const 1488 @@ -3726,11 +3728,11 @@ i32.load i32.const 1 i32.shr_u - local.set $3 + local.set $2 loop $for-loop|0 + local.get $6 local.get $7 - local.get $8 - i32.lt_u + i32.gt_u if local.get $7 i32.const 1 @@ -3738,17 +3740,17 @@ local.get $0 i32.add i32.load16_u - local.tee $2 + local.tee $3 i32.const 7 i32.shr_u if block $for-continue|0 - local.get $2 + local.get $3 i32.const 55295 i32.sub i32.const 1025 i32.lt_u - local.get $8 + local.get $6 i32.const 1 i32.sub local.get $7 @@ -3774,7 +3776,7 @@ local.get $4 i32.const 1023 i32.and - local.get $2 + local.get $3 local.tee $1 i32.const 1023 i32.and @@ -3783,14 +3785,14 @@ i32.or i32.const 65536 i32.add - local.tee $2 + local.tee $3 i32.const 131072 i32.ge_u if - local.get $5 + local.get $9 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add local.get $4 i32.const 16 @@ -3798,74 +3800,76 @@ local.get $1 i32.or i32.store - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-continue|0 end end end - local.get $2 + local.get $3 i32.const 9424 i32.sub i32.const 25 i32.le_u if - local.get $5 + local.get $9 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add - local.get $2 + local.get $3 i32.const 26 i32.sub i32.store16 else - local.get $2 + i32.const -1 + local.set $10 + local.get $3 i32.const 223 i32.sub i32.const 64056 i32.le_u - if (result i32) - local.get $3 - local.set $1 - i32.const 0 - local.set $9 + if block $~lib/util/casemap/bsearch|inlined.0 + local.get $2 + local.set $1 + i32.const 0 + local.set $5 loop $while-continue|1 local.get $1 - local.get $9 + local.get $5 i32.ge_s if local.get $1 - local.get $9 + local.get $5 i32.add i32.const 3 i32.shr_u i32.const 2 i32.shl - local.tee $4 + local.tee $10 i32.const 1 i32.shl i32.const 1488 i32.add i32.load16_u - local.get $2 + local.get $3 i32.sub - local.tee $10 + local.tee $4 i32.eqz br_if $~lib/util/casemap/bsearch|inlined.0 - local.get $10 + local.get $4 i32.const 31 i32.shr_u if - local.get $4 + local.get $10 i32.const 4 i32.add - local.set $9 + local.set $5 else - local.get $4 + local.get $10 i32.const 4 i32.sub local.set $1 @@ -3874,46 +3878,43 @@ end end i32.const -1 - local.set $4 + local.set $10 end - local.get $4 - else - i32.const -1 end - local.tee $1 + local.get $10 i32.const -1 i32.xor if - local.get $1 + local.get $10 i32.const 1 i32.shl i32.const 1488 i32.add - local.tee $1 + local.tee $4 i32.load16_u offset=6 - local.set $2 - local.get $5 + local.set $3 + local.get $9 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add - local.tee $4 - local.get $1 + local.tee $1 + local.get $4 i32.load offset=2 i32.store - local.get $4 - local.get $2 + local.get $1 + local.get $3 i32.store16 offset=4 - local.get $2 + local.get $3 i32.const 0 i32.ne i32.const 1 i32.add - local.get $5 + local.get $9 i32.add - local.set $5 + local.set $9 else - local.get $2 + local.get $3 i32.const 1 call $~lib/util/casemap/casemap i32.const 2097151 @@ -3922,18 +3923,18 @@ i32.const 65536 i32.lt_u if - local.get $5 + local.get $9 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add local.get $1 i32.store16 else - local.get $5 + local.get $9 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add local.get $1 i32.const 65536 @@ -3952,21 +3953,21 @@ i32.shl i32.or i32.store - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 end end end end else - local.get $5 + local.get $9 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add - local.get $2 + local.get $3 i32.const 2316 i32.add i32.load8_u @@ -3976,15 +3977,15 @@ i32.const 1 i32.add local.set $7 - local.get $5 + local.get $9 i32.const 1 i32.add - local.set $5 + local.set $9 br $for-loop|0 end end - local.get $6 - local.get $5 + local.get $8 + local.get $9 i32.const 1 i32.shl call $~lib/rt/itcms/__renew @@ -4021,15 +4022,16 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 + local.tee $6 i64.const 0 i64.store - local.get $1 + local.get $6 i64.const 0 i64.store offset=8 - local.get $1 + local.get $6 i64.const 0 i64.store offset=16 - local.get $1 + local.get $6 i32.const 0 i32.store offset=24 memory.size @@ -6648,7 +6650,7 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $7 i32.store loop $for-loop|0 local.get $3 @@ -6661,12 +6663,12 @@ local.get $0 i32.add i32.load16_u - local.tee $4 + local.tee $2 i32.const 7 i32.shr_u if block $for-continue|0 - local.get $4 + local.get $2 i32.const 55295 i32.sub i32.const 1025 @@ -6684,7 +6686,7 @@ local.get $0 i32.add i32.load16_u offset=2 - local.tee $2 + local.tee $4 i32.const 56319 i32.sub i32.const 1025 @@ -6694,10 +6696,10 @@ i32.const 1 i32.add local.set $3 - local.get $2 + local.get $4 i32.const 1023 i32.and - local.get $4 + local.get $2 local.tee $1 i32.const 1023 i32.and @@ -6706,53 +6708,53 @@ i32.or i32.const 65536 i32.add - local.tee $4 + local.tee $2 i32.const 131072 i32.ge_u if - local.get $10 + local.get $6 i32.const 1 i32.shl - local.get $9 + local.get $7 i32.add - local.get $2 + local.get $4 i32.const 16 i32.shl local.get $1 i32.or i32.store - local.get $10 + local.get $6 i32.const 1 i32.add - local.set $10 + local.set $6 br $for-continue|0 end end end - local.get $4 + local.get $2 i32.const 304 i32.eq if - local.get $10 + local.get $6 i32.const 1 i32.shl - local.get $9 + local.get $7 i32.add i32.const 50790505 i32.store - local.get $10 + local.get $6 i32.const 1 i32.add - local.set $10 + local.set $6 else - local.get $4 + local.get $2 i32.const 931 i32.eq if - local.get $10 + local.get $6 i32.const 1 i32.shl - local.get $9 + local.get $7 i32.add i32.const 962 i32.const 963 @@ -6763,10 +6765,10 @@ block $~lib/util/string/isFinalSigma|inlined.0 (result i32) i32.const 0 local.set $1 + local.get $3 i32.const 0 local.get $3 local.tee $2 - local.tee $4 i32.const 30 i32.sub local.tee $5 @@ -6774,20 +6776,20 @@ i32.const 0 i32.lt_s select - local.set $6 + local.set $9 loop $while-continue|1 - local.get $4 - local.get $6 + local.get $2 + local.get $9 i32.gt_s if i32.const -1 - local.set $11 + local.set $5 block $~lib/util/string/codePointBefore|inlined.0 - local.get $4 + local.get $2 i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $4 + local.get $2 i32.const 1 i32.sub i32.const 1 @@ -6795,22 +6797,22 @@ local.get $0 i32.add i32.load16_u - local.tee $7 + local.tee $11 i32.const 64512 i32.and i32.const 56320 i32.eq - local.get $4 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.ge_s i32.and if - local.get $7 + local.get $11 i32.const 1023 i32.and - local.get $4 + local.get $2 i32.const 2 i32.sub i32.const 1 @@ -6818,7 +6820,7 @@ local.get $0 i32.add i32.load16_u - local.tee $5 + local.tee $10 i32.const 1023 i32.and i32.const 10 @@ -6826,8 +6828,8 @@ i32.add i32.const 65536 i32.add - local.set $11 - local.get $5 + local.set $5 + local.get $10 i32.const 64512 i32.and i32.const 55296 @@ -6835,20 +6837,20 @@ br_if $~lib/util/string/codePointBefore|inlined.0 end i32.const 65533 - local.get $7 - local.get $7 + local.get $11 + local.get $11 i32.const 63488 i32.and i32.const 55296 i32.eq select - local.set $11 + local.set $5 end - local.get $11 + local.get $5 i32.const 918000 i32.lt_u if (result i32) - local.get $11 + local.get $5 i32.const 8 i32.shr_u i32.const 7212 @@ -6858,14 +6860,14 @@ i32.shl i32.const 7212 i32.add - local.get $11 + local.get $5 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $11 + local.get $5 i32.const 7 i32.and i32.shr_u @@ -6876,12 +6878,11 @@ end i32.eqz if - i32.const 0 - local.get $11 + local.get $5 i32.const 127370 i32.lt_u if (result i32) - local.get $11 + local.get $5 i32.const 8 i32.shr_u i32.const 10220 @@ -6891,14 +6892,14 @@ i32.shl i32.const 10220 i32.add - local.get $11 + local.get $5 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $11 + local.get $5 i32.const 7 i32.and i32.shr_u @@ -6907,20 +6908,22 @@ else i32.const 0 end - i32.eqz - br_if $~lib/util/string/isFinalSigma|inlined.0 - drop - i32.const 1 + if (result i32) + i32.const 1 + else + i32.const 0 + br $~lib/util/string/isFinalSigma|inlined.0 + end local.set $1 end - local.get $4 - local.get $11 + local.get $2 + local.get $5 i32.const 65536 i32.ge_s i32.const 1 i32.add i32.sub - local.set $4 + local.set $2 br $while-continue|1 end end @@ -6929,10 +6932,9 @@ i32.eqz br_if $~lib/util/string/isFinalSigma|inlined.0 drop - local.get $2 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 30 i32.add local.tee $1 @@ -6941,13 +6943,13 @@ local.get $8 i32.lt_s select - local.set $5 + local.set $4 loop $while-continue|2 + local.get $2 local.get $4 - local.get $5 i32.lt_s if - local.get $4 + local.get $2 i32.const 1 i32.shl local.get $0 @@ -6959,25 +6961,25 @@ i32.const 55296 i32.eq local.get $8 - local.get $4 + local.get $2 i32.const 1 i32.add i32.ne i32.and if - local.get $4 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.load16_u offset=2 - local.tee $2 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $2 + local.get $5 local.get $1 i32.const 10 i32.shl @@ -7057,9 +7059,9 @@ i32.ge_u i32.const 1 i32.add - local.get $4 + local.get $2 i32.add - local.set $4 + local.set $2 br $while-continue|2 end end @@ -7071,23 +7073,23 @@ select i32.store16 else - local.get $4 + local.get $2 i32.const 9398 i32.sub i32.const 25 i32.le_u if - local.get $10 + local.get $6 i32.const 1 i32.shl - local.get $9 + local.get $7 i32.add - local.get $4 + local.get $2 i32.const 26 i32.add i32.store16 else - local.get $4 + local.get $2 i32.const 0 call $~lib/util/casemap/casemap i32.const 2097151 @@ -7096,18 +7098,18 @@ i32.const 65536 i32.lt_u if - local.get $10 + local.get $6 i32.const 1 i32.shl - local.get $9 + local.get $7 i32.add local.get $1 i32.store16 else - local.get $10 + local.get $6 i32.const 1 i32.shl - local.get $9 + local.get $7 i32.add local.get $1 i32.const 65536 @@ -7126,22 +7128,22 @@ i32.shl i32.or i32.store - local.get $10 + local.get $6 i32.const 1 i32.add - local.set $10 + local.set $6 end end end end end else - local.get $10 + local.get $6 i32.const 1 i32.shl - local.get $9 + local.get $7 i32.add - local.get $4 + local.get $2 i32.const 7084 i32.add i32.load8_u @@ -7151,15 +7153,15 @@ i32.const 1 i32.add local.set $3 - local.get $10 + local.get $6 i32.const 1 i32.add - local.set $10 + local.set $6 br $for-loop|0 end end - local.get $9 - local.get $10 + local.get $7 + local.get $6 i32.const 1 i32.shl call $~lib/rt/itcms/__renew diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index eaf627f4de..774222188f 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -633,12 +633,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -656,11 +656,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 38928 @@ -668,14 +668,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -685,17 +685,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -712,116 +712,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 38924 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -832,146 +759,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 38924 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1216 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 38924 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 38924 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 38924 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1488 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2990,9 +2992,10 @@ call $~lib/string/String.UTF16.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1056 i32.store offset=8 local.get $0 @@ -3445,19 +3448,19 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 1824 i32.store offset=4 i32.const 1824 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3482,19 +3485,19 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 1888 i32.store offset=4 i32.const 1888 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3519,19 +3522,19 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 1888 i32.store offset=4 i32.const 1888 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3593,9 +3596,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1056 i32.store offset=8 local.get $0 @@ -3655,9 +3659,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1056 i32.store offset=8 local.get $0 @@ -3846,6 +3851,7 @@ (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3874,25 +3880,26 @@ local.get $0 i32.const 1056 call $~lib/string/String.UTF16.encode - local.tee $0 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1052 i32.load - local.set $1 - local.get $0 + local.set $2 + local.get $1 i32.const 0 call $~lib/string/String.UTF16.decodeUnsafe - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.tee $0 + local.get $3 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1552 i32.store offset=8 - local.get $2 + local.get $3 i32.const 1552 call $~lib/string/String.__eq i32.eqz @@ -3904,18 +3911,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $2 call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $1 + local.get $0 i32.store local.get $2 i32.const 1056 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -3927,18 +3934,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $1 + local.get $0 i32.store local.get $2 i32.const 1584 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1584 call $~lib/string/String.__eq i32.eqz @@ -3950,20 +3957,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 2 call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $1 + local.get $0 i32.store local.get $2 i32.const 1616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1616 call $~lib/string/String.__eq i32.eqz @@ -3975,20 +3982,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 4 call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $1 + local.get $0 i32.store local.get $2 i32.const 1648 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -4000,20 +4007,20 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 8 i32.add i32.const 4 call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $1 + local.get $0 i32.store local.get $2 i32.const 1680 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1680 call $~lib/string/String.__eq i32.eqz @@ -4025,7 +4032,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.add i32.const 0 @@ -4536,50 +4543,51 @@ call $~lib/string/String.UTF8.byteLength i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 - local.set $4 local.get $0 + local.tee $3 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u + local.get $4 + local.set $0 i32.const 1 i32.shl - local.get $0 + local.get $3 i32.add local.set $6 loop $while-continue|0 - local.get $0 + local.get $3 local.get $6 i32.lt_u if - local.get $0 + local.get $3 i32.load16_u - local.tee $3 + local.tee $5 i32.const 128 i32.lt_u if (result i32) - local.get $4 - local.get $3 + local.get $0 + local.get $5 i32.store8 - local.get $4 + local.get $0 i32.const 1 i32.add else - local.get $3 + local.get $5 i32.const 2048 i32.lt_u if (result i32) - local.get $4 - local.get $3 + local.get $0 + local.get $5 i32.const 6 i32.shr_u i32.const 192 i32.or - local.get $3 + local.get $5 i32.const 63 i32.and i32.const 128 @@ -4588,27 +4596,27 @@ i32.shl i32.or i32.store16 - local.get $4 + local.get $0 i32.const 2 i32.add else - local.get $3 + local.get $5 i32.const 63488 i32.and i32.const 55296 i32.eq if - local.get $3 + local.get $5 i32.const 56320 i32.lt_u local.get $6 - local.get $0 + local.get $3 i32.const 2 i32.add i32.gt_u i32.and if - local.get $0 + local.get $3 i32.load16_u offset=2 local.tee $7 i32.const 64512 @@ -4616,8 +4624,8 @@ i32.const 56320 i32.eq if - local.get $4 - local.get $3 + local.get $0 + local.get $5 i32.const 1023 i32.and i32.const 10 @@ -4628,14 +4636,14 @@ i32.const 1023 i32.and i32.or - local.tee $3 + local.tee $5 i32.const 63 i32.and i32.const 128 i32.or i32.const 24 i32.shl - local.get $3 + local.get $5 i32.const 6 i32.shr_u i32.const 63 @@ -4645,7 +4653,7 @@ i32.const 16 i32.shl i32.or - local.get $3 + local.get $5 i32.const 12 i32.shr_u i32.const 63 @@ -4655,21 +4663,21 @@ i32.const 8 i32.shl i32.or - local.get $3 + local.get $5 i32.const 18 i32.shr_u i32.const 240 i32.or i32.or i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 local.get $0 i32.const 4 i32.add local.set $0 + local.get $3 + i32.const 4 + i32.add + local.set $3 br $while-continue|0 end end @@ -4688,17 +4696,17 @@ end i32.const 65533 else - local.get $3 + local.get $5 end - local.set $3 + local.set $5 end - local.get $4 - local.get $3 + local.get $0 + local.get $5 i32.const 12 i32.shr_u i32.const 224 i32.or - local.get $3 + local.get $5 i32.const 6 i32.shr_u i32.const 63 @@ -4709,29 +4717,29 @@ i32.shl i32.or i32.store16 - local.get $4 - local.get $3 + local.get $0 + local.get $5 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $4 + local.get $0 i32.const 3 i32.add end end - local.set $4 - local.get $0 + local.set $0 + local.get $3 i32.const 2 i32.add - local.set $0 + local.set $3 br $while-continue|0 end end local.get $1 if - local.get $4 + local.get $0 i32.const 0 i32.store8 end @@ -4739,7 +4747,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 ) (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -4766,11 +4774,11 @@ i32.const 0 i32.store local.get $0 + local.tee $3 local.get $1 + local.get $3 i32.add - local.set $5 - local.get $0 - local.get $5 + local.tee $5 i32.gt_u if i32.const 0 @@ -4786,40 +4794,40 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 local.set $1 loop $while-continue|0 - local.get $0 + local.get $3 local.get $5 i32.lt_u if block $while-break|0 - local.get $0 + local.get $3 i32.load8_u local.set $6 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 local.get $6 i32.const 128 i32.and if - local.get $0 + local.get $3 local.get $5 i32.eq br_if $while-break|0 - local.get $0 + local.get $3 i32.load8_u i32.const 63 i32.and local.set $7 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 local.get $6 i32.const 224 i32.and @@ -4836,19 +4844,19 @@ i32.or i32.store16 else - local.get $0 + local.get $3 local.get $5 i32.eq br_if $while-break|0 - local.get $0 + local.get $3 i32.load8_u i32.const 63 i32.and local.set $4 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 local.get $6 i32.const 240 i32.and @@ -4868,11 +4876,11 @@ i32.or local.set $4 else - local.get $0 + local.get $3 local.get $5 i32.eq br_if $while-break|0 - local.get $0 + local.get $3 i32.load8_u i32.const 63 i32.and @@ -4891,10 +4899,10 @@ i32.or i32.or local.set $4 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 end local.get $4 i32.const 65536 @@ -4946,15 +4954,16 @@ end end end - block $__inlined_func$~lib/rt/itcms/__renew (result i32) + block $__inlined_func$~lib/rt/itcms/__renew local.get $1 - local.get $3 + local.get $0 i32.sub - local.tee $0 - local.get $3 + local.tee $2 + local.get $0 + local.tee $1 i32.const 20 i32.sub - local.tee $1 + local.tee $3 i32.load i32.const -4 i32.and @@ -4962,33 +4971,34 @@ i32.sub i32.le_u if - local.get $1 - local.get $0 - i32.store offset=16 local.get $3 + local.get $2 + i32.store offset=16 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $2 - local.get $3 - local.get $0 + local.tee $0 local.get $1 + local.get $2 + local.get $3 i32.load offset=16 local.tee $1 - local.get $0 local.get $1 - i32.lt_u + local.get $2 + i32.gt_u select call $~lib/memory/memory.copy - local.get $2 + local.get $0 + local.set $1 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 98f5851467..15f916ab60 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1226,6 +1226,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -1770,12 +1772,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -1793,11 +1795,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 42272 @@ -1805,14 +1807,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -1822,17 +1824,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1849,116 +1851,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 42268 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1969,146 +1898,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 42268 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1440 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 42268 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1440 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 42268 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end + i32.const 4 + i32.add + local.tee $0 + i32.const 42268 + i32.ge_u if - i32.const 0 - i32.const 1648 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1648 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -7403,37 +7407,37 @@ (local $8 i32) (local $9 i32) (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 25884 - i32.lt_s - if - i32.const 42288 - i32.const 42336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i64.const 0 - i64.store offset=8 - local.get $6 - i64.const 0 - i64.store offset=16 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 25884 + i32.lt_s + if + i32.const 42288 + i32.const 42336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + i64.const 0 + i64.store offset=8 + local.get $6 + i64.const 0 + i64.store offset=16 local.get $2 i32.eqz - br_if $folding-inner0 + br_if $folding-inner1 local.get $1 i32.eqz if @@ -7442,29 +7446,24 @@ i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load offset=4 i32.store offset=4 - local.get $1 + local.get $2 i32.load offset=4 local.get $0 i32.store local.get $0 if - local.get $1 + local.get $2 local.get $0 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return + br $folding-inner2 end local.get $0 i32.const 20 @@ -7472,7 +7471,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $8 + local.set $6 i32.const 2147483647 local.get $2 local.get $2 @@ -7486,9 +7485,9 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $9 + local.tee $8 if - local.get $8 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -7502,17 +7501,17 @@ i32.load offset=4 i32.const 1712 i32.store - br $folding-inner1 + br $folding-inner3 end else - local.get $8 + local.get $6 i32.eqz - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 local.get $2 local.get $2 - local.get $8 + local.get $6 i32.gt_s select local.tee $1 @@ -7523,10 +7522,10 @@ i32.store local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $for-loop|0 local.get $1 - local.get $3 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer @@ -7536,17 +7535,17 @@ local.tee $5 i32.store offset=8 local.get $5 - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.load16_u i32.store16 - local.get $3 + local.get $4 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add local.get $5 i32.store @@ -7557,133 +7556,136 @@ i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + br $folding-inner2 end global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $9 i32.store offset=12 - loop $while-continue|1 - local.get $0 - local.get $1 - local.get $4 - call $~lib/string/String#indexOf - local.tee $6 - i32.const -1 - i32.xor - if - local.get $6 - local.get $4 - i32.sub - local.tee $7 - i32.const 0 - i32.gt_s + block $folding-inner0 + loop $while-continue|1 + local.get $0 + local.get $1 + local.get $3 + call $~lib/string/String#indexOf + local.tee $4 + i32.const -1 + i32.xor if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.shl - local.tee $10 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=16 - local.get $7 local.get $4 + local.get $3 + i32.sub + local.tee $7 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.shl + local.tee $10 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=16 + local.get $7 + local.get $3 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $10 + call $~lib/memory/memory.copy + local.get $9 + local.get $7 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=20 + local.get $9 + i32.const 1712 + call $~lib/array/Array<~lib/string/String>#push + end + local.get $2 + local.get $5 i32.const 1 - i32.shl - local.get $0 i32.add - local.get $10 - call $~lib/memory/memory.copy - local.get $3 - local.get $7 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=20 - local.get $3 - i32.const 1712 - call $~lib/array/Array<~lib/string/String>#push + local.tee $5 + i32.eq + br_if $folding-inner0 + local.get $4 + local.get $8 + i32.add + local.set $3 + br $while-continue|1 end + end + local.get $3 + i32.eqz + if + local.get $9 + local.get $0 + call $~lib/array/Array<~lib/string/String>#push + br $folding-inner0 + end + local.get $6 + local.get $3 + i32.sub + local.tee $1 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 local.get $2 - local.get $5 + local.get $3 i32.const 1 + i32.shl + local.get $0 i32.add - local.tee $5 - i32.eq - br_if $folding-inner2 - local.get $6 + local.get $1 + call $~lib/memory/memory.copy local.get $9 - i32.add - local.set $4 - br $while-continue|1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=20 + local.get $9 + i32.const 1712 + call $~lib/array/Array<~lib/string/String>#push end - end - local.get $4 - i32.eqz - if - local.get $3 - local.get $0 - call $~lib/array/Array<~lib/string/String>#push - br $folding-inner2 - end - local.get $8 - local.get $4 - i32.sub - local.tee $1 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - local.get $4 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $1 - call $~lib/memory/memory.copy - local.get $3 - local.get $2 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=20 - local.get $3 - i32.const 1712 - call $~lib/array/Array<~lib/string/String>#push + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $9 + return end global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $9 return end i32.const 0 @@ -7691,19 +7693,20 @@ i32.const 0 call $~lib/rt/__newArray local.set $0 + br $folding-inner3 end global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 return end global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $0 ) (func $start:std/string (local $0 i32) @@ -8052,9 +8055,10 @@ call $~lib/string/String#at local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 1744 i32.store offset=4 local.get $0 @@ -8405,26 +8409,28 @@ i32.const 1 i32.shr_u local.tee $0 - i32.const 0 - local.get $0 - local.get $0 + local.tee $4 + local.get $4 i32.const 0 i32.gt_s select - local.tee $0 + local.set $4 + i32.const 0 + local.get $0 + local.get $4 i32.const 2172 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $0 i32.add i32.lt_s br_if $__inlined_func$~lib/string/String#startsWith drop local.get $3 - local.get $0 - i32.const 2176 local.get $4 + i32.const 2176 + local.get $0 call $~lib/util/string/compareImpl i32.eqz end @@ -8457,7 +8463,7 @@ local.tee $0 local.get $0 i32.const 536870910 - i32.gt_s + i32.gt_u select i32.const 2204 i32.load @@ -12349,9 +12355,10 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $0 i32.store offset=20 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 9712 i32.store offset=24 local.get $0 @@ -12359,9 +12366,10 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $0 i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 9872 i32.store offset=16 local.get $0 @@ -12369,9 +12377,10 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 10032 i32.store offset=8 local.get $0 @@ -12786,12 +12795,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 1808 i32.store local.get $0 i32.const 12944 i32.store offset=4 - local.get $0 i32.const 1808 i32.const 12944 call $~lib/string/String#concat @@ -15950,9 +15959,9 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 1712 i32.store - local.get $0 i32.const 1712 i32.const 0 i32.const 2147483647 @@ -15992,12 +16001,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 1712 i32.store local.get $0 i32.const 1712 i32.store offset=4 - local.get $0 i32.const 1712 i32.const 1712 i32.const 2147483647 @@ -16016,12 +16025,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 1712 i32.store local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 i32.const 1712 i32.const 2624 i32.const 2147483647 @@ -16061,12 +16070,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 15424 i32.store local.get $0 i32.const 7184 i32.store offset=4 - local.get $0 i32.const 15424 i32.const 7184 i32.const 2147483647 @@ -16106,12 +16115,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 15424 i32.store local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 i32.const 15424 i32.const 2624 i32.const 2147483647 @@ -16187,12 +16196,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 15456 i32.store local.get $0 i32.const 15504 i32.store offset=4 - local.get $0 i32.const 15456 i32.const 15504 i32.const 2147483647 @@ -16268,12 +16277,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 15536 i32.store local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 i32.const 15536 i32.const 2624 i32.const 2147483647 @@ -16367,12 +16376,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 15568 i32.store local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 i32.const 15568 i32.const 2624 i32.const 2147483647 @@ -16466,12 +16475,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 15600 i32.store local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 i32.const 15600 i32.const 2624 i32.const 2147483647 @@ -16565,12 +16574,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 2336 i32.store local.get $0 i32.const 1712 i32.store offset=4 - local.get $0 i32.const 2336 i32.const 1712 i32.const 2147483647 @@ -16646,12 +16655,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 2336 i32.store local.get $0 i32.const 1712 i32.store offset=4 - local.get $0 i32.const 2336 i32.const 1712 i32.const 0 @@ -16670,12 +16679,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 2336 i32.store local.get $0 i32.const 1712 i32.store offset=4 - local.get $0 i32.const 2336 i32.const 1712 i32.const 1 @@ -16715,12 +16724,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 15424 i32.store local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 i32.const 15424 i32.const 2624 i32.const 1 @@ -16760,12 +16769,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 2336 i32.store local.get $0 i32.const 1712 i32.store offset=4 - local.get $0 i32.const 2336 i32.const 1712 i32.const 4 @@ -16841,12 +16850,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 2336 i32.store local.get $0 i32.const 1712 i32.store offset=4 - local.get $0 i32.const 2336 i32.const 1712 i32.const -1 @@ -16922,12 +16931,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 15424 i32.store local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 i32.const 15424 i32.const 2624 i32.const -1 @@ -21878,12 +21887,12 @@ call $~lib/rt/itcms/__new local.tee $4 i32.store + local.get $3 local.get $1 local.get $6 i32.sub local.tee $5 - local.get $3 - i32.gt_u + i32.lt_u if local.get $3 local.get $5 @@ -21956,12 +21965,12 @@ i32.shr_u i32.const 1 i32.shl - local.tee $3 + local.tee $4 i32.eqz local.get $1 i32.const 1 i32.shl - local.tee $4 + local.tee $3 local.get $0 i32.const 20 i32.sub @@ -21982,7 +21991,7 @@ return end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 @@ -21992,35 +22001,35 @@ local.get $5 call $~lib/memory/memory.copy local.get $4 + local.get $3 local.get $5 i32.sub - local.tee $4 - local.get $3 - i32.gt_u + local.tee $3 + i32.lt_u if - local.get $3 local.get $4 + local.get $3 i32.const 2 i32.sub - local.get $3 + local.get $4 i32.div_u - local.tee $6 + local.tee $0 i32.mul - local.set $0 + local.set $6 local.get $1 local.get $5 i32.add local.tee $5 local.get $2 - local.get $3 - local.get $6 - call $~lib/memory/memory.repeat + local.get $4 local.get $0 + call $~lib/memory/memory.repeat local.get $5 + local.get $6 i32.add local.get $2 - local.get $4 - local.get $0 + local.get $3 + local.get $6 i32.sub call $~lib/memory/memory.copy else @@ -22028,7 +22037,7 @@ local.get $5 i32.add local.get $2 - local.get $4 + local.get $3 call $~lib/memory/memory.copy end global.get $~lib/memory/__stack_pointer @@ -22222,7 +22231,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $2 + local.tee $3 local.set $1 loop $while-continue|0 local.get $1 @@ -22234,16 +22243,16 @@ i32.const 2 i32.sub i32.load16_u - local.tee $3 + local.tee $2 i32.const 5760 i32.lt_u if - local.get $3 + local.get $2 i32.const 128 i32.or i32.const 160 i32.eq - local.get $3 + local.get $2 i32.const 9 i32.sub i32.const 4 @@ -22252,7 +22261,7 @@ br $__inlined_func$~lib/util/string/isSpace end i32.const 1 - local.get $3 + local.get $2 i32.const -8192 i32.add i32.const 10 @@ -22261,31 +22270,31 @@ drop block $break|0 block $case6|0 - local.get $3 + local.get $2 i32.const 5760 i32.eq br_if $case6|0 - local.get $3 + local.get $2 i32.const 8232 i32.eq br_if $case6|0 - local.get $3 + local.get $2 i32.const 8233 i32.eq br_if $case6|0 - local.get $3 + local.get $2 i32.const 8239 i32.eq br_if $case6|0 - local.get $3 + local.get $2 i32.const 8287 i32.eq br_if $case6|0 - local.get $3 + local.get $2 i32.const 12288 i32.eq br_if $case6|0 - local.get $3 + local.get $2 i32.const 65279 i32.eq br_if $case6|0 @@ -22318,7 +22327,7 @@ return end local.get $1 - local.get $2 + local.get $3 i32.eq if global.get $~lib/memory/__stack_pointer @@ -22781,21 +22790,21 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 - local.get $1 + local.tee $3 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $3 - i32.le_u + local.tee $4 + i32.ge_u if local.get $3 local.get $4 @@ -22905,7 +22914,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) - block $folding-inner2 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -22924,324 +22933,331 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $folding-inner1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $7 - i32.le_u - if - local.get $5 - local.get $7 - i32.ge_u - if - local.get $2 - local.get $0 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - select - local.set $0 - end - br $folding-inner2 - end - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + i32.le_u + if + local.get $5 local.get $7 - i32.eqz + i32.ge_u if - local.get $3 - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $5 - i32.const 1 - i32.add - i32.mul - local.get $5 - i32.add - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - local.get $4 local.get $2 - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.set $1 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.gt_u - if - local.get $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - local.get $6 - i32.const 1 - i32.shl - local.get $0 - i32.add - i32.load16_u - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - local.get $2 - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $1 - local.get $3 - i32.add - local.set $1 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - br $folding-inner1 + local.get $0 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + select + local.set $0 end + br $folding-inner0 + end + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + local.get $7 + i32.eqz + if local.get $3 - local.get $7 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - local.tee $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store + i32.eqz + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $5 + i32.const 1 + i32.add + i32.mul + local.get $5 + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + local.get $6 + local.get $2 + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.set $1 + loop $for-loop|0 local.get $4 - local.get $0 local.get $5 - call $~lib/memory/memory.copy - loop $while-continue|1 - local.get $0 - local.get $1 - local.get $9 - call $~lib/string/String#indexOf - local.tee $5 - i32.const -1 - i32.xor - if - local.get $5 - i32.const 1 - i32.shl - local.get $4 - i32.add - local.get $2 - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $5 - local.get $7 - i32.add - local.set $9 - br $while-continue|1 - end - end - br $folding-inner1 - end - local.get $5 - local.set $4 - loop $while-continue|2 - local.get $0 - local.get $1 - local.get $9 - call $~lib/string/String#indexOf - local.tee $6 - i32.const -1 - i32.xor + i32.lt_u if - local.get $10 - if (result i32) - local.get $10 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - else - i32.const 0 - end - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $10 - i32.store offset=4 - end - local.get $4 - local.get $3 + local.get $1 + i32.const 1 + i32.shl local.get $6 - local.get $9 - i32.sub - local.tee $11 - local.get $8 i32.add - i32.add - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $10 - local.get $4 - i32.const 1 - i32.shl - local.tee $4 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $10 - i32.store offset=4 - end - local.get $8 + local.get $4 i32.const 1 i32.shl - local.get $10 + local.get $0 i32.add - local.get $9 + i32.load16_u + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $6 i32.add - local.get $11 + local.get $2 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $8 - local.get $11 + local.get $1 + local.get $3 i32.add - local.tee $8 + local.set $1 + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $3 + local.get $7 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.shl + local.tee $4 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 + local.get $0 + local.get $4 + call $~lib/memory/memory.copy + loop $while-continue|1 + local.get $0 + local.get $1 + local.get $9 + call $~lib/string/String#indexOf + local.tee $4 + i32.const -1 + i32.xor + if + local.get $4 i32.const 1 i32.shl - local.get $10 + local.get $5 i32.add local.get $2 local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 - local.get $8 - i32.add - local.set $8 - local.get $6 + local.get $4 local.get $7 i32.add local.set $9 - br $while-continue|2 + br $while-continue|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $5 + local.set $4 + loop $while-continue|2 + local.get $0 + local.get $1 + local.get $9 + call $~lib/string/String#indexOf + local.tee $6 + i32.const -1 + i32.xor + if + local.get $10 + if (result i32) + local.get $10 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + else + i32.const 0 end - end - local.get $10 - if - local.get $4 - local.get $5 - local.get $9 - i32.sub - local.tee $1 - local.get $8 - i32.add - i32.lt_u + i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $10 - local.get $4 + local.get $5 i32.const 1 i32.shl - local.tee $4 i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew + call $~lib/rt/itcms/__new local.tee $10 i32.store offset=4 end - local.get $1 - if - local.get $8 - i32.const 1 - i32.shl - local.get $10 - i32.add - local.get $9 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $1 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - end - local.get $1 + local.get $4 + local.get $3 local.get $8 + local.get $6 + local.get $9 + i32.sub + local.tee $11 + i32.add i32.add - local.tee $0 - local.get $4 i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $10 - local.get $0 + local.get $4 + i32.const 1 + i32.shl + local.tee $4 i32.const 1 i32.shl call $~lib/rt/itcms/__renew local.tee $10 i32.store offset=4 end + local.get $8 + i32.const 1 + i32.shl + local.get $10 + i32.add + local.get $9 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $11 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $8 + local.get $11 + i32.add + local.tee $8 + i32.const 1 + i32.shl + local.get $10 + i32.add + local.get $2 + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $8 + i32.add + local.set $8 + local.get $6 + local.get $7 + i32.add + local.set $9 + br $while-continue|2 + end + end + local.get $10 + if + local.get $4 + local.get $8 + local.get $5 + local.get $9 + i32.sub + local.tee $1 + i32.add + i32.lt_u + if global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $10 + local.get $4 + i32.const 1 + i32.shl + local.tee $4 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $10 + i32.store offset=4 + end + local.get $1 + if + local.get $8 + i32.const 1 + i32.shl + local.get $10 i32.add - global.set $~lib/memory/__stack_pointer + local.get $9 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + local.get $4 + local.get $1 + local.get $8 + i32.add + local.tee $0 + i32.gt_u + if + global.get $~lib/memory/__stack_pointer local.get $10 - return + local.get $0 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $10 + i32.store offset=4 end - br $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -23498,10 +23514,9 @@ i32.gt_s select local.tee $2 - local.tee $4 + local.get $2 local.get $3 - local.get $4 - i32.lt_s + i32.gt_s select i32.const 1 i32.shl @@ -23913,8 +23928,8 @@ local.get $0 ) (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) (local $4 i64) (local $5 i64) (local $6 i64) @@ -24017,9 +24032,9 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 local.get $0 local.get $1 call $~lib/util/number/utoa32_dec_lut @@ -24042,25 +24057,27 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store local.get $0 i64.extend_i32_u - local.set $3 + local.set $2 + local.get $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 2 i32.ge_u if - local.get $1 + local.get $0 i32.const 2 i32.sub - local.tee $1 + local.tee $0 i32.const 1 i32.shl - local.get $2 - i32.add local.get $3 + i32.add + local.get $2 i32.wrap_i64 i32.const 255 i32.and @@ -24070,19 +24087,19 @@ i32.add i32.load i32.store - local.get $3 + local.get $2 i64.const 8 i64.shr_u - local.set $3 + local.set $2 br $while-continue|0 end end - local.get $1 + local.get $0 i32.const 1 i32.and if - local.get $2 local.get $3 + local.get $2 i32.wrap_i64 i32.const 6 i32.shl @@ -24096,15 +24113,15 @@ block $__inlined_func$~lib/util/number/ulog_base (result i32) local.get $0 i64.extend_i32_u - local.tee $6 - local.set $3 + local.tee $5 + local.set $2 local.get $1 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $3 + local.get $2 i64.clz i32.wrap_i64 i32.sub @@ -24119,19 +24136,19 @@ end local.get $1 i64.extend_i32_s - local.tee $5 + local.tee $6 local.set $4 i32.const 1 local.set $0 loop $while-continue|00 - local.get $3 + local.get $2 local.get $4 i64.ge_u if - local.get $3 + local.get $2 local.get $4 i64.div_u - local.set $3 + local.set $2 local.get $4 local.get $4 i64.mul @@ -24144,14 +24161,14 @@ end end loop $while-continue|1 - local.get $3 + local.get $2 i64.const 0 i64.ne if - local.get $3 - local.get $5 + local.get $2 + local.get $6 i64.div_u - local.set $3 + local.set $2 local.get $0 i32.const 1 i32.add @@ -24168,10 +24185,10 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 - local.get $6 + local.get $3 + local.get $5 local.get $0 local.get $1 call $~lib/util/number/utoa64_any_core @@ -24181,7 +24198,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) (local $2 i64) @@ -24244,47 +24261,46 @@ local.get $0 i32.wrap_i64 local.tee $1 - local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -24594,47 +24610,46 @@ local.get $0 i32.wrap_i64 local.tee $1 - local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -24950,22 +24965,22 @@ call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - i32.const 22864 local.get $2 + i32.const 22864 + local.get $1 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) global.get $~lib/rt/itcms/white diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 30c8aa5278..71190475be 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -285,6 +285,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -829,12 +831,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -852,11 +854,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 19088 @@ -864,14 +866,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -881,17 +883,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -908,116 +910,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 19084 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1028,146 +957,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 19084 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1200 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 19084 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1200 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 19084 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 19084 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1472 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1472 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3062,6 +3066,7 @@ i32.store block $__inlined_func$~lib/string/String#concat local.get $0 + local.tee $2 i32.const 20 i32.sub i32.load offset=16 @@ -3080,7 +3085,7 @@ i32.shl local.tee $4 i32.add - local.tee $2 + local.tee $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3088,20 +3093,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1824 - local.set $2 + local.set $0 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 local.get $3 call $~lib/memory/memory.copy - local.get $2 + local.get $0 local.get $3 i32.add local.get $1 @@ -3112,7 +3117,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $2 + local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -3531,7 +3536,7 @@ i32.lt_s br_if $folding-inner1 local.get $2 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -3540,10 +3545,10 @@ call $~lib/util/hash/HASH<~lib/string/String> local.tee $6 call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 + local.get $1 i32.store offset=4 else local.get $5 @@ -3582,24 +3587,24 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 local.get $7 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 @@ -3620,7 +3625,7 @@ i32.add local.set $10 local.get $3 - local.set $1 + local.set $0 loop $while-continue|0 local.get $4 local.get $10 @@ -3637,14 +3642,14 @@ i32.load local.tee $11 i32.store offset=8 - local.get $1 + local.get $0 local.get $11 i32.store - local.get $1 + local.get $0 local.get $4 i32.load offset=4 i32.store offset=4 - local.get $1 + local.get $0 local.get $11 call $~lib/util/hash/HASH<~lib/string/String> local.get $7 @@ -3657,12 +3662,12 @@ i32.load i32.store offset=8 local.get $11 - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.add - local.set $1 + local.set $0 end local.get $4 i32.const 12 @@ -3709,7 +3714,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store local.get $5 local.get $5 @@ -3721,17 +3726,17 @@ local.get $3 i32.const 12 i32.mul - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.const 1056 i32.store local.get $5 i32.const 1056 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link - local.get $1 local.get $0 + local.get $1 i32.store offset=4 local.get $5 local.get $5 @@ -3739,7 +3744,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $0 local.get $5 i32.load local.get $5 @@ -3753,7 +3758,7 @@ i32.load i32.store offset=8 local.get $3 - local.get $1 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer @@ -3761,10 +3766,11 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $0 global.get $~lib/symbol/idToString local.tee $5 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3777,8 +3783,7 @@ i32.store local.get $5 i32.load - local.get $0 - local.tee $3 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3788,23 +3793,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor local.tee $6 local.get $5 @@ -3821,19 +3826,19 @@ if local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $1 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $3 i32.const -2 i32.and local.set $0 @@ -3912,40 +3917,41 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $5 i32.load offset=8 - local.tee $1 + local.tee $4 local.get $5 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $10 - local.get $4 + local.get $3 local.set $0 loop $while-continue|00 - local.get $1 + local.get $4 local.get $10 i32.ne if - local.get $1 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $1 + local.get $4 i32.load local.tee $11 i32.store local.get $0 - local.get $1 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $0 + local.get $7 local.get $11 i32.const -1028477379 i32.mul @@ -3956,25 +3962,24 @@ i32.const 668265263 i32.mul local.tee $11 + local.get $11 i32.const 15 i32.shr_u - local.get $11 i32.xor i32.const -2048144777 i32.mul local.tee $11 + local.get $11 i32.const 13 i32.shr_u - local.get $11 i32.xor i32.const -1028477379 i32.mul local.tee $11 + local.get $11 i32.const 16 i32.shr_u - local.get $11 i32.xor - local.get $7 i32.and i32.const 2 i32.shl @@ -3991,10 +3996,10 @@ i32.add local.set $0 end - local.get $1 + local.get $4 i32.const 12 i32.add - local.set $1 + local.set $4 br $while-continue|00 end end @@ -4012,12 +4017,12 @@ local.get $7 i32.store offset=4 local.get $5 - local.get $4 + local.get $3 i32.store offset=8 - local.get $4 + local.get $3 if local.get $5 - local.get $4 + local.get $3 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end @@ -4041,17 +4046,17 @@ local.get $5 local.get $5 i32.load offset=16 - local.tee $1 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $1 + local.get $3 i32.const 12 i32.mul local.get $0 i32.add local.tee $0 - local.get $3 + local.get $1 i32.store local.get $0 i32.const 1056 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index fe2e03facc..4762ac7537 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -845,6 +845,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -1389,12 +1391,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -1412,11 +1414,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 33024 @@ -1424,14 +1426,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -1441,17 +1443,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1518,116 +1520,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 33012 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1638,102 +1567,177 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 33012 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1232 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 33012 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free + i32.const 33012 + i32.lt_u + if + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2406,7 +2410,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -2448,7 +2452,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -2490,7 +2494,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -2532,7 +2536,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -2578,7 +2582,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -2624,7 +2628,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -2670,7 +2674,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -2716,7 +2720,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -2762,7 +2766,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -2808,7 +2812,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -2854,7 +2858,7 @@ i32.load offset=4 local.get $1 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -6570,43 +6574,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 7728 i32.store - local.get $1 + local.get $2 i32.const 7740 i32.load - local.tee $1 + local.tee $2 call $~lib/typedarray/Int8Array#constructor local.tee $4 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 + local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 7728 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end - i32.const 0 - local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 @@ -7011,7 +7013,7 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 local.get $4 i32.load offset=8 @@ -7031,12 +7033,12 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $4 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|023 - local.get $1 + local.get $0 local.get $2 i32.lt_s if @@ -7047,17 +7049,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -7072,55 +7074,55 @@ global.set $~argumentsLength local.get $4 i32.load offset=8 - local.tee $2 + local.tee $1 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 + local.get $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 local.get $0 - local.get $2 + local.get $1 i32.add - local.get $2 + local.get $1 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $1 i32.ge_s select local.get $0 i32.const 0 i32.lt_s select - local.set $1 + local.set $2 local.get $4 i32.load offset=4 local.set $0 loop $while-continue|00 - local.get $1 + local.get $2 i32.const 0 i32.ge_s if local.get $0 - local.get $1 + local.get $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $1 + local.get $2 i32.const 1 i32.sub - local.set $1 + local.set $2 br $while-continue|00 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -7133,26 +7135,27 @@ global.set $~argumentsLength local.get $4 i32.load offset=8 - local.tee $2 - local.set $0 + local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $2 + local.get $4 + i32.load offset=8 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 local.get $0 local.get $2 i32.add - local.get $2 + local.get $0 i32.const 1 i32.sub - local.get $0 + local.get $2 local.get $0 local.get $2 - i32.ge_s + i32.le_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select @@ -7538,22 +7541,22 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 local.get $4 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 - local.get $0 + local.get $1 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $4 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if @@ -7564,17 +7567,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -7586,22 +7589,22 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 local.get $4 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 - local.get $0 + local.get $1 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $4 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if @@ -7612,17 +7615,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -7996,9 +7999,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 local.get $4 i32.load offset=8 @@ -8013,29 +8016,29 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -8073,44 +8076,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 7728 i32.store - local.get $1 + local.get $2 i32.const 7740 i32.load - local.tee $1 + local.tee $2 call $~lib/typedarray/Uint8Array#constructor local.tee $4 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 + local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 7728 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end - i32.const 0 - local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 @@ -8515,7 +8516,7 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 local.get $4 i32.load offset=8 @@ -8535,12 +8536,12 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $4 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|023 - local.get $1 + local.get $0 local.get $2 i32.lt_s if @@ -8551,17 +8552,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -8576,55 +8577,55 @@ global.set $~argumentsLength local.get $4 i32.load offset=8 - local.tee $2 + local.tee $1 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $0 - local.get $2 + local.get $1 i32.add - local.get $2 + local.get $1 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $1 i32.ge_s select local.get $0 i32.const 0 i32.lt_s select - local.set $1 + local.set $2 local.get $4 i32.load offset=4 local.set $0 loop $while-continue|00 - local.get $1 + local.get $2 i32.const 0 i32.ge_s if local.get $0 - local.get $1 + local.get $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + local.get $2 i32.const 1 i32.sub - local.set $1 + local.set $2 br $while-continue|00 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -8637,26 +8638,27 @@ global.set $~argumentsLength local.get $4 i32.load offset=8 - local.tee $2 - local.set $0 + local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $2 + local.get $4 + i32.load offset=8 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $0 local.get $2 i32.add - local.get $2 + local.get $0 i32.const 1 i32.sub - local.get $0 + local.get $2 local.get $0 local.get $2 - i32.ge_s + i32.le_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select @@ -9042,22 +9044,22 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 local.get $4 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $0 + local.get $1 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $4 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if @@ -9068,17 +9070,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -9090,22 +9092,22 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 local.get $4 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $0 + local.get $1 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $4 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if @@ -9116,17 +9118,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -9499,9 +9501,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $4 i32.load offset=8 @@ -9516,29 +9518,29 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9576,44 +9578,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 7728 i32.store - local.get $1 + local.get $2 i32.const 7740 i32.load - local.tee $1 + local.tee $2 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $4 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 + local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 7728 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end - i32.const 0 - local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 @@ -10018,7 +10018,7 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 local.get $4 i32.load offset=8 @@ -10038,12 +10038,12 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $4 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|023 - local.get $1 + local.get $0 local.get $2 i32.lt_s if @@ -10054,17 +10054,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -10079,55 +10079,55 @@ global.set $~argumentsLength local.get $4 i32.load offset=8 - local.tee $2 + local.tee $1 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $0 - local.get $2 + local.get $1 i32.add - local.get $2 + local.get $1 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $1 i32.ge_s select local.get $0 i32.const 0 i32.lt_s select - local.set $1 + local.set $2 local.get $4 i32.load offset=4 local.set $0 loop $while-continue|00 - local.get $1 + local.get $2 i32.const 0 i32.ge_s if local.get $0 - local.get $1 + local.get $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + local.get $2 i32.const 1 i32.sub - local.set $1 + local.set $2 br $while-continue|00 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -10140,26 +10140,27 @@ global.set $~argumentsLength local.get $4 i32.load offset=8 - local.tee $2 - local.set $0 + local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $2 + local.get $4 + i32.load offset=8 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $0 local.get $2 i32.add - local.get $2 + local.get $0 i32.const 1 i32.sub - local.get $0 + local.get $2 local.get $0 local.get $2 - i32.ge_s + i32.le_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select @@ -10545,22 +10546,22 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 local.get $4 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $0 + local.get $1 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $4 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if @@ -10571,17 +10572,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -10593,22 +10594,22 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 local.get $4 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $0 + local.get $1 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $4 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if @@ -10619,17 +10620,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11002,9 +11003,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $4 i32.load offset=8 @@ -11019,29 +11020,29 @@ i32.load offset=4 local.set $2 loop $while-continue|063 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -11158,25 +11159,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 7728 i32.store - local.get $1 + local.get $3 i32.const 7740 i32.load - local.tee $1 + local.tee $2 call $~lib/typedarray/Int16Array#constructor local.tee $4 i32.store offset=4 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $4 @@ -11193,10 +11195,8 @@ br $for-loop|0 end end - i32.const 0 - local.set $0 i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 local.get $4 i32.load offset=8 @@ -11212,12 +11212,12 @@ i32.load offset=4 local.set $2 loop $while-continue|0 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11225,17 +11225,17 @@ i32.load16_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -11245,9 +11245,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 local.get $4 i32.load offset=8 @@ -11263,12 +11263,12 @@ i32.load offset=4 local.set $2 loop $while-continue|02 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11277,17 +11277,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|02 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11299,9 +11299,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 local.get $4 i32.load offset=8 @@ -11317,12 +11317,12 @@ i32.load offset=4 local.set $2 loop $while-continue|05 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11331,17 +11331,17 @@ i32.const 65535 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11353,9 +11353,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 local.get $4 i32.load offset=8 @@ -11371,12 +11371,12 @@ i32.load offset=4 local.set $2 loop $while-continue|08 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11385,17 +11385,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|08 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -11407,9 +11407,9 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 local.get $4 i32.load offset=8 @@ -11426,12 +11426,12 @@ i32.load offset=4 local.set $2 loop $while-continue|011 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11440,17 +11440,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -11462,9 +11462,9 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 local.get $4 i32.load offset=8 @@ -11481,12 +11481,12 @@ i32.load offset=4 local.set $2 loop $while-continue|014 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11495,17 +11495,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|014 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -11517,9 +11517,9 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 local.get $4 i32.load offset=8 @@ -11536,12 +11536,12 @@ i32.load offset=4 local.set $2 loop $while-continue|017 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11550,17 +11550,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|017 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11572,9 +11572,9 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 local.get $4 i32.load offset=8 @@ -11591,12 +11591,12 @@ i32.load offset=4 local.set $2 loop $while-continue|020 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11605,17 +11605,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11747,34 +11747,34 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $1 i32.const 4 i32.le_u select - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11783,17 +11783,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|024 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -11805,34 +11805,34 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_u select - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11841,17 +11841,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -11863,34 +11863,34 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_u select - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11899,17 +11899,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|030 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11921,34 +11921,34 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $1 i32.const 100 i32.le_u select - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -11957,17 +11957,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -12089,9 +12089,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 local.get $4 i32.load offset=8 @@ -12107,12 +12107,12 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12121,17 +12121,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|042 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12143,9 +12143,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 local.get $4 i32.load offset=8 @@ -12161,12 +12161,12 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12175,17 +12175,17 @@ i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -12195,9 +12195,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 local.get $4 i32.load offset=8 @@ -12213,12 +12213,12 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12227,17 +12227,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|048 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -12249,9 +12249,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 local.get $4 i32.load offset=8 @@ -12267,12 +12267,12 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12281,17 +12281,17 @@ i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|051 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12303,9 +12303,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 local.get $4 i32.load offset=8 @@ -12321,12 +12321,12 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12335,17 +12335,17 @@ i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|054 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12357,9 +12357,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 local.get $4 i32.load offset=8 @@ -12375,12 +12375,12 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12389,17 +12389,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12411,9 +12411,9 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 local.get $4 i32.load offset=8 @@ -12430,12 +12430,12 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12444,17 +12444,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|060 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -12547,25 +12547,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 7728 i32.store - local.get $1 + local.get $3 i32.const 7740 i32.load - local.tee $1 + local.tee $2 call $~lib/typedarray/Uint16Array#constructor local.tee $4 i32.store offset=4 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $4 @@ -12583,10 +12584,8 @@ br $for-loop|0 end end - i32.const 0 - local.set $0 i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 local.get $4 i32.load offset=8 @@ -12602,12 +12601,12 @@ i32.load offset=4 local.set $2 loop $while-continue|0 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12615,17 +12614,17 @@ i32.load16_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -12635,9 +12634,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 local.get $4 i32.load offset=8 @@ -12653,12 +12652,12 @@ i32.load offset=4 local.set $2 loop $while-continue|02 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12667,17 +12666,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|02 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12689,9 +12688,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 local.get $4 i32.load offset=8 @@ -12707,12 +12706,12 @@ i32.load offset=4 local.set $2 loop $while-continue|05 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12721,17 +12720,17 @@ i32.const 65535 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12743,9 +12742,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 local.get $4 i32.load offset=8 @@ -12761,12 +12760,12 @@ i32.load offset=4 local.set $2 loop $while-continue|08 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12775,17 +12774,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|08 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -12797,9 +12796,9 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 local.get $4 i32.load offset=8 @@ -12816,12 +12815,12 @@ i32.load offset=4 local.set $2 loop $while-continue|011 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12830,17 +12829,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -12852,9 +12851,9 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 local.get $4 i32.load offset=8 @@ -12871,12 +12870,12 @@ i32.load offset=4 local.set $2 loop $while-continue|014 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12885,17 +12884,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|014 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -12907,9 +12906,9 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 local.get $4 i32.load offset=8 @@ -12926,12 +12925,12 @@ i32.load offset=4 local.set $2 loop $while-continue|017 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12940,17 +12939,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|017 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12962,9 +12961,9 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 local.get $4 i32.load offset=8 @@ -12981,12 +12980,12 @@ i32.load offset=4 local.set $2 loop $while-continue|020 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -12995,17 +12994,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -13137,34 +13136,34 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $1 i32.const 4 i32.le_u select - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13173,17 +13172,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|024 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -13195,34 +13194,34 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_u select - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13231,17 +13230,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -13253,34 +13252,34 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_u select - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13289,17 +13288,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|030 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -13311,34 +13310,34 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $1 i32.const 100 i32.le_u select - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13347,17 +13346,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -13479,9 +13478,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 local.get $4 i32.load offset=8 @@ -13497,12 +13496,12 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13511,17 +13510,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|042 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -13533,9 +13532,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 local.get $4 i32.load offset=8 @@ -13551,12 +13550,12 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13565,17 +13564,17 @@ i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -13585,9 +13584,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 local.get $4 i32.load offset=8 @@ -13603,12 +13602,12 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13617,17 +13616,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|048 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -13639,9 +13638,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 local.get $4 i32.load offset=8 @@ -13657,12 +13656,12 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13671,17 +13670,17 @@ i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|051 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -13693,9 +13692,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 local.get $4 i32.load offset=8 @@ -13711,12 +13710,12 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13725,17 +13724,17 @@ i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|054 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -13747,9 +13746,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 local.get $4 i32.load offset=8 @@ -13765,12 +13764,12 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13779,17 +13778,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -13801,9 +13800,9 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 local.get $4 i32.load offset=8 @@ -13820,12 +13819,12 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl local.get $2 @@ -13834,17 +13833,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|060 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -13937,26 +13936,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 0 i32.store offset=8 - local.get $0 + local.get $3 i32.const 7728 i32.store - local.get $0 + local.get $2 i32.const 7740 i32.load - local.tee $0 + local.tee $2 call $~lib/typedarray/Int32Array#constructor local.tee $3 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if local.get $3 local.get $1 @@ -13971,10 +13971,8 @@ br $for-loop|0 end end - i32.const 0 - local.set $1 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 local.get $3 i32.load offset=8 @@ -13987,12 +13985,12 @@ i32.load offset=4 local.set $2 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14000,17 +13998,17 @@ i32.load i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -14020,9 +14018,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 local.get $3 i32.load offset=8 @@ -14035,12 +14033,12 @@ i32.load offset=4 local.set $2 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14049,17 +14047,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14071,9 +14069,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 local.get $3 i32.load offset=8 @@ -14086,12 +14084,12 @@ i32.load offset=4 local.set $2 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14100,17 +14098,17 @@ i32.const -1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14122,9 +14120,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 local.get $3 i32.load offset=8 @@ -14137,12 +14135,12 @@ i32.load offset=4 local.set $2 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14151,17 +14149,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -14173,9 +14171,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 local.get $3 i32.load offset=8 @@ -14192,12 +14190,12 @@ i32.load offset=4 local.set $2 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14206,17 +14204,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -14228,9 +14226,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 local.get $3 i32.load offset=8 @@ -14247,12 +14245,12 @@ i32.load offset=4 local.set $2 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14261,17 +14259,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -14283,9 +14281,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 local.get $3 i32.load offset=8 @@ -14302,12 +14300,12 @@ i32.load offset=4 local.set $2 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14316,17 +14314,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14338,9 +14336,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 local.get $3 i32.load offset=8 @@ -14357,12 +14355,12 @@ i32.load offset=4 local.set $2 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14371,17 +14369,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14712,34 +14710,34 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_u select - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14748,17 +14746,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -14770,34 +14768,34 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_u select - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14806,17 +14804,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -14828,34 +14826,34 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_u select - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14864,17 +14862,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14886,34 +14884,34 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_u select - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -14922,17 +14920,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -15055,9 +15053,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 local.get $4 i32.load offset=8 @@ -15070,12 +15068,12 @@ i32.load offset=4 local.set $3 loop $while-continue|042 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -15084,17 +15082,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15106,9 +15104,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 local.get $4 i32.load offset=8 @@ -15121,12 +15119,12 @@ i32.load offset=4 local.set $3 loop $while-continue|045 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -15135,17 +15133,17 @@ i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -15155,9 +15153,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 local.get $4 i32.load offset=8 @@ -15170,12 +15168,12 @@ i32.load offset=4 local.set $3 loop $while-continue|048 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -15184,17 +15182,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -15206,9 +15204,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 local.get $4 i32.load offset=8 @@ -15221,12 +15219,12 @@ i32.load offset=4 local.set $3 loop $while-continue|051 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -15235,17 +15233,17 @@ i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15257,9 +15255,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 local.get $4 i32.load offset=8 @@ -15272,12 +15270,12 @@ i32.load offset=4 local.set $3 loop $while-continue|054 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -15286,17 +15284,17 @@ i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15308,9 +15306,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 local.get $4 i32.load offset=8 @@ -15323,12 +15321,12 @@ i32.load offset=4 local.set $3 loop $while-continue|057 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -15337,17 +15335,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15359,9 +15357,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 local.get $4 i32.load offset=8 @@ -15378,12 +15376,12 @@ i32.load offset=4 local.set $3 loop $while-continue|060 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -15392,17 +15390,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -15495,26 +15493,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 0 i32.store offset=8 - local.get $0 + local.get $3 i32.const 7728 i32.store - local.get $0 + local.get $2 i32.const 7740 i32.load - local.tee $0 + local.tee $2 call $~lib/typedarray/Uint32Array#constructor local.tee $3 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if local.get $3 local.get $1 @@ -15529,10 +15528,8 @@ br $for-loop|0 end end - i32.const 0 - local.set $1 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 local.get $3 i32.load offset=8 @@ -15545,12 +15542,12 @@ i32.load offset=4 local.set $2 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -15558,17 +15555,17 @@ i32.load i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -15578,9 +15575,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 local.get $3 i32.load offset=8 @@ -15593,12 +15590,12 @@ i32.load offset=4 local.set $2 loop $while-continue|02 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -15607,17 +15604,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15629,9 +15626,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 local.get $3 i32.load offset=8 @@ -15644,12 +15641,12 @@ i32.load offset=4 local.set $2 loop $while-continue|05 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -15658,17 +15655,17 @@ i32.const -1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15680,9 +15677,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 local.get $3 i32.load offset=8 @@ -15695,12 +15692,12 @@ i32.load offset=4 local.set $2 loop $while-continue|08 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -15709,17 +15706,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -15731,9 +15728,9 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 local.get $3 i32.load offset=8 @@ -15750,12 +15747,12 @@ i32.load offset=4 local.set $2 loop $while-continue|011 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -15764,17 +15761,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -15786,9 +15783,9 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 local.get $3 i32.load offset=8 @@ -15805,12 +15802,12 @@ i32.load offset=4 local.set $2 loop $while-continue|014 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -15819,17 +15816,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -15841,9 +15838,9 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 local.get $3 i32.load offset=8 @@ -15860,12 +15857,12 @@ i32.load offset=4 local.set $2 loop $while-continue|017 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -15874,17 +15871,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15896,9 +15893,9 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 local.get $3 i32.load offset=8 @@ -15915,12 +15912,12 @@ i32.load offset=4 local.set $2 loop $while-continue|020 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -15929,17 +15926,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -16270,34 +16267,34 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_u select - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -16306,17 +16303,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -16328,34 +16325,34 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_u select - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -16364,17 +16361,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -16386,34 +16383,34 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_u select - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -16422,17 +16419,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -16444,34 +16441,34 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_u select - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -16480,17 +16477,17 @@ i32.const 1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -16612,9 +16609,9 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 local.get $4 i32.load offset=8 @@ -16627,12 +16624,12 @@ i32.load offset=4 local.set $3 loop $while-continue|042 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -16641,17 +16638,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -16663,9 +16660,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 local.get $4 i32.load offset=8 @@ -16678,12 +16675,12 @@ i32.load offset=4 local.set $3 loop $while-continue|045 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -16692,17 +16689,17 @@ i32.const 4 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -16712,9 +16709,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 local.get $4 i32.load offset=8 @@ -16727,12 +16724,12 @@ i32.load offset=4 local.set $3 loop $while-continue|048 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -16741,17 +16738,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -16763,9 +16760,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 local.get $4 i32.load offset=8 @@ -16778,12 +16775,12 @@ i32.load offset=4 local.set $3 loop $while-continue|051 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -16792,17 +16789,17 @@ i32.const 9 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -16814,9 +16811,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 local.get $4 i32.load offset=8 @@ -16829,12 +16826,12 @@ i32.load offset=4 local.set $3 loop $while-continue|054 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -16843,17 +16840,17 @@ i32.const 10 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -16865,9 +16862,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 local.get $4 i32.load offset=8 @@ -16880,12 +16877,12 @@ i32.load offset=4 local.set $3 loop $while-continue|057 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -16894,17 +16891,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -16916,9 +16913,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 local.get $4 i32.load offset=8 @@ -16935,12 +16932,12 @@ i32.load offset=4 local.set $3 loop $while-continue|060 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $3 @@ -16949,17 +16946,17 @@ i32.const 5 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -17052,28 +17049,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 7728 i32.store - local.get $0 + local.get $2 i32.const 7740 i32.load - local.tee $0 + local.tee $3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $4 + local.get $2 local.get $1 i32.const 7728 local.get $1 @@ -17087,46 +17084,44 @@ br $for-loop|0 end end - i32.const 0 - local.set $1 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -17136,46 +17131,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|02 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17187,46 +17182,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|05 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const -1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17238,46 +17233,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|08 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17289,50 +17284,50 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|011 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17344,50 +17339,50 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 3 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|014 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17399,50 +17394,50 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 4 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|017 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17454,50 +17449,50 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 10 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|020 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17511,18 +17506,18 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 - local.get $2 + local.get $3 i32.const 100 i32.sub local.tee $0 @@ -17532,12 +17527,12 @@ i32.gt_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|023 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -17572,35 +17567,39 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $2 + local.tee $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.set $3 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 local.get $2 + local.get $3 i32.add local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 + local.get $3 local.get $2 - i32.ge_s + local.get $3 + i32.le_s select - local.get $1 + local.get $3 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|00 @@ -17609,7 +17608,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -17617,7 +17615,7 @@ i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -17625,9 +17623,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -17638,35 +17636,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|06 @@ -17675,7 +17673,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -17684,7 +17681,7 @@ i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -17692,9 +17689,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17707,35 +17704,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|012 @@ -17744,7 +17741,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -17753,7 +17749,7 @@ i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -17761,9 +17757,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17776,35 +17772,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|018 @@ -17813,7 +17809,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -17822,7 +17817,7 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -17830,9 +17825,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17844,53 +17839,54 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $4 + local.get $0 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17902,53 +17898,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17960,53 +17956,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18018,53 +18014,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -18078,7 +18074,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -18089,7 +18085,7 @@ i32.const 10 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|036 @@ -18130,7 +18126,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -18141,7 +18137,7 @@ i32.const 11 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|039 @@ -18180,15 +18176,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9 call $~lib/typedarray/Int64Array#subarray local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 local.get $4 i32.load offset=8 @@ -18201,12 +18197,12 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -18215,17 +18211,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18237,9 +18233,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 local.get $4 i32.load offset=8 @@ -18252,12 +18248,12 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -18266,17 +18262,17 @@ i64.const 4 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -18286,9 +18282,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 local.get $4 i32.load offset=8 @@ -18301,12 +18297,12 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -18315,17 +18311,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -18337,9 +18333,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 local.get $4 i32.load offset=8 @@ -18352,12 +18348,12 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -18366,17 +18362,17 @@ i64.const 9 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18388,9 +18384,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 local.get $4 i32.load offset=8 @@ -18403,12 +18399,12 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -18417,17 +18413,17 @@ i64.const 10 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18439,9 +18435,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 local.get $4 i32.load offset=8 @@ -18454,12 +18450,12 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -18468,17 +18464,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18490,9 +18486,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 local.get $4 i32.load offset=8 @@ -18509,12 +18505,12 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -18523,17 +18519,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -18626,28 +18622,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 7728 i32.store - local.get $0 + local.get $2 i32.const 7740 i32.load - local.tee $0 + local.tee $3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $4 + local.get $2 local.get $1 i32.const 7728 local.get $1 @@ -18661,46 +18657,44 @@ br $for-loop|0 end end - i32.const 0 - local.set $1 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -18710,46 +18704,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|02 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18761,46 +18755,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|05 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const -1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18812,46 +18806,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|08 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18863,50 +18857,50 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|011 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18918,50 +18912,50 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 3 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|014 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18973,50 +18967,50 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 4 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|017 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19028,50 +19022,50 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 10 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|020 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 1 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19085,18 +19079,18 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 - local.get $2 + local.get $3 i32.const 100 i32.sub local.tee $0 @@ -19106,12 +19100,12 @@ i32.gt_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|023 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -19146,35 +19140,39 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $2 + local.tee $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.set $3 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $1 local.get $2 + local.get $3 i32.add local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 + local.get $3 local.get $2 - i32.ge_s + local.get $3 + i32.le_s select - local.get $1 + local.get $3 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|00 @@ -19183,7 +19181,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19191,7 +19188,7 @@ i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -19199,9 +19196,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -19212,35 +19209,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|06 @@ -19249,7 +19246,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19258,7 +19254,7 @@ i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -19266,9 +19262,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19281,35 +19277,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|012 @@ -19318,7 +19314,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19327,7 +19322,7 @@ i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -19335,9 +19330,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19350,35 +19345,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|018 @@ -19387,7 +19382,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19396,7 +19390,7 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -19404,9 +19398,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19418,53 +19412,54 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $4 + local.get $0 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19476,53 +19471,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19534,53 +19529,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19592,53 +19587,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i64.const 1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -19652,7 +19647,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -19663,7 +19658,7 @@ i32.const 10 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|036 @@ -19704,7 +19699,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -19715,7 +19710,7 @@ i32.const 11 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|039 @@ -19754,15 +19749,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9 call $~lib/typedarray/Uint64Array#subarray local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 local.get $4 i32.load offset=8 @@ -19775,12 +19770,12 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -19789,17 +19784,17 @@ i64.const 3 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19811,9 +19806,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 local.get $4 i32.load offset=8 @@ -19826,12 +19821,12 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -19840,17 +19835,17 @@ i64.const 4 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -19860,9 +19855,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 local.get $4 i32.load offset=8 @@ -19875,12 +19870,12 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -19889,17 +19884,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -19911,9 +19906,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 local.get $4 i32.load offset=8 @@ -19926,12 +19921,12 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -19940,17 +19935,17 @@ i64.const 9 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19962,9 +19957,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 local.get $4 i32.load offset=8 @@ -19977,12 +19972,12 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -19991,17 +19986,17 @@ i64.const 10 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20013,9 +20008,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 local.get $4 i32.load offset=8 @@ -20028,12 +20023,12 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -20042,17 +20037,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20064,9 +20059,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 local.get $4 i32.load offset=8 @@ -20083,12 +20078,12 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -20097,17 +20092,17 @@ i64.const 5 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -20200,28 +20195,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 7728 i32.store - local.get $0 + local.get $2 i32.const 7740 i32.load - local.tee $0 + local.tee $3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $4 + local.get $2 local.get $1 i32.const 7728 local.get $1 @@ -20235,47 +20230,45 @@ br $for-loop|0 end end - i32.const 0 - local.set $1 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 0 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -20285,46 +20278,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|02 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 11 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20336,46 +20329,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|05 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const -1 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20387,46 +20380,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|08 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -20438,50 +20431,50 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|011 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -20493,50 +20486,50 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 3 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|014 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -20548,50 +20541,50 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 4 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|017 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20603,50 +20596,50 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 10 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|020 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 1 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20660,18 +20653,18 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 - local.get $2 + local.get $3 i32.const 100 i32.sub local.tee $0 @@ -20681,12 +20674,12 @@ i32.gt_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|023 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -20721,35 +20714,39 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $2 + local.tee $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 - local.set $1 + local.set $3 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 local.get $2 + local.get $3 i32.add local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 + local.get $3 local.get $2 - i32.ge_s + local.get $3 + i32.le_s select - local.get $1 + local.get $3 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|00 @@ -20758,7 +20755,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 2 i32.shl local.get $2 @@ -20767,7 +20763,7 @@ f32.const 0 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -20775,9 +20771,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -20788,35 +20784,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|06 @@ -20825,7 +20821,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 2 i32.shl local.get $2 @@ -20834,7 +20829,7 @@ f32.const 11 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -20842,9 +20837,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20857,35 +20852,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|012 @@ -20894,7 +20889,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 2 i32.shl local.get $2 @@ -20903,7 +20897,7 @@ f32.const -1 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -20911,9 +20905,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20926,35 +20920,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|018 @@ -20963,7 +20957,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 2 i32.shl local.get $2 @@ -20972,7 +20965,7 @@ f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -20980,9 +20973,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -20994,53 +20987,54 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $4 + local.get $0 + local.tee $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -21052,53 +21046,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -21110,53 +21104,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21168,53 +21162,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load f32.const 1 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -21228,7 +21222,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -21239,7 +21233,7 @@ i32.const 10 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|036 @@ -21280,7 +21274,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -21291,7 +21285,7 @@ i32.const 11 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|039 @@ -21330,15 +21324,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9 call $~lib/typedarray/Float32Array#subarray local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 local.get $4 i32.load offset=8 @@ -21351,12 +21345,12 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -21365,17 +21359,17 @@ f32.const 3 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21387,9 +21381,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 local.get $4 i32.load offset=8 @@ -21402,12 +21396,12 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -21416,17 +21410,17 @@ f32.const 4 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -21436,9 +21430,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 local.get $4 i32.load offset=8 @@ -21451,12 +21445,12 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -21465,17 +21459,17 @@ f32.const 5 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -21487,9 +21481,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 local.get $4 i32.load offset=8 @@ -21502,12 +21496,12 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -21516,17 +21510,17 @@ f32.const 9 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21538,9 +21532,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 local.get $4 i32.load offset=8 @@ -21553,12 +21547,12 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -21567,17 +21561,17 @@ f32.const 10 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21589,9 +21583,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 local.get $4 i32.load offset=8 @@ -21604,12 +21598,12 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -21618,17 +21612,17 @@ f32.const 11 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21640,9 +21634,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 local.get $4 i32.load offset=8 @@ -21659,12 +21653,12 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -21673,17 +21667,17 @@ f32.const 5 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -21776,28 +21770,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 7728 i32.store - local.get $0 + local.get $2 i32.const 7740 i32.load - local.tee $0 + local.tee $3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $4 + local.get $2 local.get $1 i32.const 7728 local.get $1 @@ -21811,47 +21805,45 @@ br $for-loop|0 end end - i32.const 0 - local.set $1 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|0 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 0 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -21861,46 +21853,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|02 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 11 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21912,46 +21904,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|05 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const -1 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21963,46 +21955,46 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|08 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22014,50 +22006,50 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|011 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22069,50 +22061,50 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 3 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|014 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22124,50 +22116,50 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 4 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|017 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22179,50 +22171,50 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 10 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|020 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 1 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22236,18 +22228,18 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 - local.get $2 + local.get $3 i32.const 100 i32.sub local.tee $0 @@ -22257,12 +22249,12 @@ i32.gt_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|023 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -22297,35 +22289,39 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $2 + local.tee $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.set $3 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 local.get $2 + local.get $3 i32.add local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 + local.get $3 local.get $2 - i32.ge_s + local.get $3 + i32.le_s select - local.get $1 + local.get $3 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|00 @@ -22334,7 +22330,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22343,7 +22338,7 @@ f64.const 0 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -22351,9 +22346,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -22364,35 +22359,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|06 @@ -22401,7 +22396,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22410,7 +22404,7 @@ f64.const 11 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -22418,9 +22412,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22433,35 +22427,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|012 @@ -22470,7 +22464,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22479,7 +22472,7 @@ f64.const -1 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -22487,9 +22480,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22502,35 +22495,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 - local.set $1 + local.tee $3 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $1 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 local.set $2 loop $while-continue|018 @@ -22539,7 +22532,6 @@ i32.ge_s if local.get $1 - local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22548,7 +22540,7 @@ f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $1 @@ -22556,9 +22548,9 @@ end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22570,53 +22562,54 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $4 + local.get $0 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22628,53 +22621,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22686,53 +22679,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22744,53 +22737,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_u select - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load f64.const 1 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -22804,7 +22797,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -22815,7 +22808,7 @@ i32.const 10 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|036 @@ -22856,7 +22849,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -22867,7 +22860,7 @@ i32.const 11 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|039 @@ -22906,16 +22899,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 4 i32.const 9 call $~lib/typedarray/Float64Array#subarray local.tee $4 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 local.get $4 i32.load offset=8 @@ -22928,12 +22921,12 @@ i32.load offset=4 local.set $2 loop $while-continue|042 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -22942,17 +22935,17 @@ f64.const 3 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22964,9 +22957,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 local.get $4 i32.load offset=8 @@ -22979,12 +22972,12 @@ i32.load offset=4 local.set $2 loop $while-continue|045 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -22993,17 +22986,17 @@ f64.const 4 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -23013,9 +23006,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 local.get $4 i32.load offset=8 @@ -23028,12 +23021,12 @@ i32.load offset=4 local.set $2 loop $while-continue|048 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -23042,17 +23035,17 @@ f64.const 5 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -23064,9 +23057,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 local.get $4 i32.load offset=8 @@ -23079,12 +23072,12 @@ i32.load offset=4 local.set $2 loop $while-continue|051 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -23093,17 +23086,17 @@ f64.const 9 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23115,9 +23108,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 local.get $4 i32.load offset=8 @@ -23130,12 +23123,12 @@ i32.load offset=4 local.set $2 loop $while-continue|054 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -23144,17 +23137,17 @@ f64.const 10 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23166,9 +23159,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 local.get $4 i32.load offset=8 @@ -23181,12 +23174,12 @@ i32.load offset=4 local.set $2 loop $while-continue|057 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -23195,17 +23188,17 @@ f64.const 11 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23217,9 +23210,9 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 local.get $4 i32.load offset=8 @@ -23236,12 +23229,12 @@ i32.load offset=4 local.set $2 loop $while-continue|060 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -23250,17 +23243,17 @@ f64.const 5 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -25302,7 +25295,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $1 + local.tee $0 select local.tee $2 i64.const 4294967295 @@ -25312,62 +25305,61 @@ local.get $2 i32.wrap_i64 local.tee $3 - local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.get $1 + local.get $0 i32.add local.tee $4 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 local.get $3 local.get $4 call $~lib/util/number/utoa32_dec_lut @@ -25423,23 +25415,23 @@ i32.add end end - local.get $1 + local.get $0 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 local.get $2 local.get $3 call $~lib/util/number/utoa64_dec_lut end - local.get $1 + local.get $0 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -25447,7 +25439,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 end local.set $0 global.get $~lib/memory/__stack_pointer @@ -25583,7 +25575,6 @@ if local.get $1 i32.wrap_i64 - local.tee $3 local.tee $2 i32.const 100000 i32.lt_u @@ -25630,10 +25621,10 @@ i32.add end end - local.set $2 + local.set $3 local.get $0 - local.get $3 local.get $2 + local.get $3 call $~lib/util/number/utoa32_dec_lut else local.get $0 @@ -25688,10 +25679,10 @@ i32.add end end - local.tee $2 + local.tee $3 call $~lib/util/number/utoa64_dec_lut end - local.get $2 + local.get $3 ) (func $~lib/typedarray/Uint64Array#join (param $0 i32) (result i32) (local $1 i32) @@ -25773,47 +25764,46 @@ local.get $7 i32.wrap_i64 local.tee $2 - local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -27462,8 +27452,12 @@ local.set $1 end i32.const -1 - local.set $2 + local.set $3 end + local.get $0 + local.set $2 + local.get $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -27483,7 +27477,7 @@ i32.const 0 i32.store local.get $1 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -27497,11 +27491,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 i32.lt_s if - local.get $2 + local.get $0 i32.const -1 i32.eq if (result i32) @@ -27516,11 +27510,11 @@ call $~lib/builtins/abort unreachable end - local.set $2 + local.set $0 else local.get $3 + local.get $0 local.get $1 - local.get $2 i32.add i32.lt_s if @@ -27539,20 +27533,20 @@ local.tee $3 i32.store local.get $3 - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 if local.get $3 - local.get $0 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $3 - local.get $2 + local.get $0 i32.store offset=8 local.get $3 - local.get $0 local.get $1 + local.get $2 i32.add i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -36138,34 +36132,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $7 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $7 i32.const 5 i32.const 5 call $~lib/typedarray/Int8Array#__set @@ -36182,65 +36176,65 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 - local.set $2 - local.get $3 + local.set $5 + local.get $1 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $2 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $1 loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s + local.get $5 + local.get $6 + i32.gt_s if local.get $1 - local.get $7 + local.get $6 i32.add i32.load8_s - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $5 + local.get $4 + local.get $6 + local.get $7 i32.const 3952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.get $6 + local.get $2 i32.add - local.get $3 + local.get $4 i32.store8 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|0 end end local.get $8 - local.get $6 + local.get $2 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 @@ -36267,7 +36261,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -36360,34 +36354,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 6 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $7 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $7 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8Array#__set @@ -36404,65 +36398,65 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 - local.set $2 - local.get $3 + local.set $5 + local.get $1 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $2 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $1 loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s + local.get $5 + local.get $6 + i32.gt_s if local.get $1 - local.get $7 + local.get $6 i32.add i32.load8_u - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $5 + local.get $4 + local.get $6 + local.get $7 i32.const 3984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.get $6 + local.get $2 i32.add - local.get $3 + local.get $4 i32.store8 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|0 end end local.get $8 - local.get $6 + local.get $2 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 @@ -36489,7 +36483,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -36582,34 +36576,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $7 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $7 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set @@ -36626,65 +36620,65 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 - local.set $2 - local.get $3 + local.set $5 + local.get $1 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $2 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $1 loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s + local.get $5 + local.get $6 + i32.gt_s if local.get $1 - local.get $7 + local.get $6 i32.add i32.load8_u - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $1 - local.get $5 + local.get $4 + local.get $6 + local.get $7 i32.const 4016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.get $6 + local.get $2 i32.add - local.get $3 + local.get $4 i32.store8 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|0 end end local.get $8 - local.get $6 + local.get $2 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 @@ -36711,7 +36705,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -36813,25 +36807,25 @@ local.get $2 i32.const 6 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $7 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $7 i32.const 5 i32.const 5 call $~lib/typedarray/Int16Array#__set @@ -36851,7 +36845,7 @@ local.tee $3 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 i32.const 1 i32.shr_u @@ -36868,11 +36862,11 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 @@ -36881,7 +36875,7 @@ local.get $1 i32.const 1 i32.shl - local.get $7 + local.get $6 i32.add i32.load16_s local.set $3 @@ -36889,7 +36883,7 @@ global.set $~argumentsLength local.get $3 local.get $1 - local.get $5 + local.get $7 i32.const 4048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -36897,7 +36891,7 @@ local.get $0 i32.const 1 i32.shl - local.get $6 + local.get $5 i32.add local.get $3 i32.store16 @@ -36914,7 +36908,7 @@ end end local.get $8 - local.get $6 + local.get $5 local.get $0 i32.const 1 i32.shl @@ -36944,7 +36938,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -37048,25 +37042,25 @@ local.get $2 i32.const 6 call $~lib/typedarray/Uint16Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $7 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $7 i32.const 5 i32.const 5 call $~lib/typedarray/Uint16Array#__set @@ -37086,7 +37080,7 @@ local.tee $3 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 i32.const 1 i32.shr_u @@ -37103,11 +37097,11 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 @@ -37116,7 +37110,7 @@ local.get $1 i32.const 1 i32.shl - local.get $7 + local.get $6 i32.add i32.load16_u local.set $3 @@ -37124,7 +37118,7 @@ global.set $~argumentsLength local.get $3 local.get $1 - local.get $5 + local.get $7 i32.const 4080 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -37132,7 +37126,7 @@ local.get $0 i32.const 1 i32.shl - local.get $6 + local.get $5 i32.add local.get $3 i32.store16 @@ -37149,7 +37143,7 @@ end end local.get $8 - local.get $6 + local.get $5 local.get $0 i32.const 1 i32.shl @@ -37179,7 +37173,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -37283,25 +37277,25 @@ local.get $2 i32.const 6 call $~lib/typedarray/Int32Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $7 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $7 i32.const 5 i32.const 5 call $~lib/typedarray/Int32Array#__set @@ -37321,7 +37315,7 @@ local.tee $3 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 i32.const 2 i32.shr_u @@ -37338,11 +37332,11 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 @@ -37351,7 +37345,7 @@ local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add i32.load local.set $3 @@ -37359,7 +37353,7 @@ global.set $~argumentsLength local.get $3 local.get $1 - local.get $5 + local.get $7 i32.const 4112 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -37367,7 +37361,7 @@ local.get $0 i32.const 2 i32.shl - local.get $6 + local.get $5 i32.add local.get $3 i32.store @@ -37384,7 +37378,7 @@ end end local.get $8 - local.get $6 + local.get $5 local.get $0 i32.const 2 i32.shl @@ -37414,7 +37408,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -37518,25 +37512,25 @@ local.get $2 i32.const 6 call $~lib/typedarray/Uint32Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $7 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $7 i32.const 5 i32.const 5 call $~lib/typedarray/Uint32Array#__set @@ -37556,7 +37550,7 @@ local.tee $3 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 i32.const 2 i32.shr_u @@ -37573,11 +37567,11 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 @@ -37586,7 +37580,7 @@ local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add i32.load local.set $3 @@ -37594,7 +37588,7 @@ global.set $~argumentsLength local.get $3 local.get $1 - local.get $5 + local.get $7 i32.const 4144 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -37602,7 +37596,7 @@ local.get $0 i32.const 2 i32.shl - local.get $6 + local.get $5 i32.add local.get $3 i32.store @@ -37619,7 +37613,7 @@ end end local.get $8 - local.get $6 + local.get $5 local.get $0 i32.const 2 i32.shl @@ -37649,7 +37643,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -37753,25 +37747,25 @@ local.get $2 i32.const 6 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 5 i64.const 5 call $~lib/typedarray/Int64Array#__set @@ -37788,15 +37782,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 i32.const 3 i32.shr_u local.set $2 - local.get $6 + local.get $5 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new @@ -37808,11 +37802,11 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 @@ -37821,7 +37815,7 @@ local.get $1 i32.const 3 i32.shl - local.get $7 + local.get $6 i32.add i64.load local.set $3 @@ -37829,7 +37823,7 @@ global.set $~argumentsLength local.get $3 local.get $1 - local.get $5 + local.get $7 i32.const 4176 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -37837,7 +37831,7 @@ local.get $0 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add local.get $3 i64.store @@ -37854,7 +37848,7 @@ end end local.get $8 - local.get $6 + local.get $5 local.get $0 i32.const 3 i32.shl @@ -37884,7 +37878,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -37988,25 +37982,25 @@ local.get $2 i32.const 6 call $~lib/typedarray/Uint64Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $5 + local.get $7 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $5 + local.get $7 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $5 + local.get $7 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $5 + local.get $7 i32.const 5 i64.const 5 call $~lib/typedarray/Uint64Array#__set @@ -38023,15 +38017,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 i32.const 3 i32.shr_u local.set $2 - local.get $6 + local.get $5 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new @@ -38043,11 +38037,11 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 @@ -38056,7 +38050,7 @@ local.get $1 i32.const 3 i32.shl - local.get $7 + local.get $6 i32.add i64.load local.set $3 @@ -38064,7 +38058,7 @@ global.set $~argumentsLength local.get $3 local.get $1 - local.get $5 + local.get $7 i32.const 4208 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -38072,7 +38066,7 @@ local.get $0 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add local.get $3 i64.store @@ -38089,7 +38083,7 @@ end end local.get $8 - local.get $6 + local.get $5 local.get $0 i32.const 3 i32.shl @@ -38119,7 +38113,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -38223,25 +38217,25 @@ local.get $2 i32.const 6 call $~lib/typedarray/Float32Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $5 + local.get $7 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $5 + local.get $7 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $5 + local.get $7 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $5 + local.get $7 i32.const 5 f32.const 5 call $~lib/typedarray/Float32Array#__set @@ -38258,15 +38252,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 - local.get $6 + local.get $5 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new @@ -38278,11 +38272,11 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 @@ -38291,7 +38285,7 @@ local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load local.set $3 @@ -38299,7 +38293,7 @@ global.set $~argumentsLength local.get $3 local.get $1 - local.get $5 + local.get $7 i32.const 4240 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) @@ -38307,7 +38301,7 @@ local.get $0 i32.const 2 i32.shl - local.get $6 + local.get $5 i32.add local.get $3 f32.store @@ -38324,7 +38318,7 @@ end end local.get $8 - local.get $6 + local.get $5 local.get $0 i32.const 2 i32.shl @@ -38354,7 +38348,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -38458,25 +38452,25 @@ local.get $2 i32.const 6 call $~lib/typedarray/Float64Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $5 + local.get $7 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $5 + local.get $7 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $5 + local.get $7 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $5 + local.get $7 i32.const 5 f64.const 5 call $~lib/typedarray/Float64Array#__set @@ -38493,15 +38487,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i64.const 0 i64.store - local.get $5 + local.get $7 i32.load offset=8 i32.const 3 i32.shr_u local.set $2 - local.get $6 + local.get $5 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new @@ -38513,11 +38507,11 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $5 + local.get $7 i32.load offset=4 - local.set $7 + local.set $6 loop $for-loop|0 local.get $1 local.get $2 @@ -38526,7 +38520,7 @@ local.get $1 i32.const 3 i32.shl - local.get $7 + local.get $6 i32.add f64.load local.set $3 @@ -38534,7 +38528,7 @@ global.set $~argumentsLength local.get $3 local.get $1 - local.get $5 + local.get $7 i32.const 4272 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) @@ -38542,7 +38536,7 @@ local.get $0 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add local.get $3 f64.store @@ -38559,7 +38553,7 @@ end end local.get $8 - local.get $6 + local.get $5 local.get $0 i32.const 3 i32.shl @@ -38589,7 +38583,7 @@ i32.load offset=4 local.get $8 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -38688,14 +38682,14 @@ local.get $3 i32.const 7152 i32.store + local.get $0 + i32.const 255 + i32.and i32.const 7152 local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and - local.get $0 - i32.const 255 - i32.and i32.ne if i32.const 0 @@ -38760,14 +38754,14 @@ local.get $3 i32.const 7152 i32.store + local.get $0 + i32.const 65535 + i32.and i32.const 7152 local.get $1 call $~lib/array/Array#__get i32.const 65535 i32.and - local.get $0 - i32.const 65535 - i32.and i32.ne if i32.const 0 @@ -39093,7 +39087,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -39111,42 +39104,43 @@ end global.get $~lib/memory/__stack_pointer local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 7616 i32.store local.get $3 i32.const 7628 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $5 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $5 + local.get $4 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 local.get $0 i32.const 7616 local.get $0 @@ -39160,58 +39154,56 @@ br $for-loop|0 end end - i32.const 0 - local.set $0 - local.get $5 + local.get $4 i32.load offset=4 - local.set $7 - local.get $5 + local.set $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $8 + local.tee $6 i32.const 1 i32.gt_u if - local.get $8 + local.get $6 i32.const 1 i32.shr_u - local.set $3 - local.get $8 + local.set $7 + local.get $6 i32.const 1 i32.sub - local.set $8 + local.set $6 loop $while-continue|0 - local.get $0 - local.get $3 + local.get $1 + local.get $7 i32.lt_u if - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $7 + local.get $0 i32.add - local.tee $9 + local.tee $8 i64.load local.set $2 - local.get $9 local.get $8 - local.get $0 + local.get $6 + local.get $1 i32.sub i32.const 3 i32.shl - local.get $7 + local.get $0 i32.add - local.tee $9 + local.tee $8 i64.load i64.store - local.get $9 + local.get $8 local.get $2 i64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -39220,14 +39212,14 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $5 + local.get $4 local.get $0 call $~lib/typedarray/Int64Array#__get i32.const 7616 - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 @@ -39251,13 +39243,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 8 call $~lib/typedarray/Int64Array#subarray local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=12 + i32.const 0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -39381,7 +39375,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -39399,42 +39392,43 @@ end global.get $~lib/memory/__stack_pointer local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 7616 i32.store local.get $3 i32.const 7628 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Uint64Array#constructor - local.tee $5 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $~lib/typedarray/Uint64Array#constructor - local.tee $6 + local.tee $5 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $5 + local.get $4 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $6 + local.get $5 local.get $0 i32.const 7616 local.get $0 @@ -39448,58 +39442,56 @@ br $for-loop|0 end end - i32.const 0 - local.set $0 - local.get $5 + local.get $4 i32.load offset=4 - local.set $7 - local.get $5 + local.set $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $8 + local.tee $6 i32.const 1 i32.gt_u if - local.get $8 + local.get $6 i32.const 1 i32.shr_u - local.set $3 - local.get $8 + local.set $7 + local.get $6 i32.const 1 i32.sub - local.set $8 + local.set $6 loop $while-continue|0 - local.get $0 - local.get $3 + local.get $1 + local.get $7 i32.lt_u if - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $7 + local.get $0 i32.add - local.tee $9 + local.tee $8 i64.load local.set $2 - local.get $9 local.get $8 - local.get $0 + local.get $6 + local.get $1 i32.sub i32.const 3 i32.shl - local.get $7 + local.get $0 i32.add - local.tee $9 + local.tee $8 i64.load i64.store - local.get $9 + local.get $8 local.get $2 i64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -39508,14 +39500,14 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $5 + local.get $4 local.get $0 call $~lib/typedarray/Uint64Array#__get i32.const 7616 - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 @@ -39539,13 +39531,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 8 call $~lib/typedarray/Uint64Array#subarray local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=12 + i32.const 0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -39669,7 +39663,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -39687,42 +39680,43 @@ end global.get $~lib/memory/__stack_pointer local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 7616 i32.store local.get $3 i32.const 7628 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Float32Array#constructor - local.tee $5 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $~lib/typedarray/Float32Array#constructor - local.tee $6 + local.tee $5 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $5 + local.get $4 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $6 + local.get $5 local.get $0 i32.const 7616 local.get $0 @@ -39736,58 +39730,56 @@ br $for-loop|0 end end - i32.const 0 - local.set $0 - local.get $5 + local.get $4 i32.load offset=4 - local.set $7 - local.get $5 + local.set $0 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $8 + local.tee $6 i32.const 1 i32.gt_u if - local.get $8 + local.get $6 i32.const 1 i32.shr_u - local.set $3 - local.get $8 + local.set $7 + local.get $6 i32.const 1 i32.sub - local.set $8 + local.set $6 loop $while-continue|0 - local.get $0 - local.get $3 + local.get $1 + local.get $7 i32.lt_u if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add - local.tee $9 + local.tee $8 f32.load local.set $2 - local.get $9 local.get $8 - local.get $0 + local.get $6 + local.get $1 i32.sub i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add - local.tee $9 + local.tee $8 f32.load f32.store - local.get $9 + local.get $8 local.get $2 f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -39796,14 +39788,14 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $5 + local.get $4 local.get $0 call $~lib/typedarray/Float32Array#__get i32.const 7616 - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 @@ -39827,13 +39819,15 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 8 call $~lib/typedarray/Float32Array#subarray local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=12 + i32.const 0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -39957,7 +39951,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -39975,42 +39968,43 @@ end global.get $~lib/memory/__stack_pointer local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 7616 i32.store local.get $3 i32.const 7628 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Float64Array#constructor - local.tee $5 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $~lib/typedarray/Float64Array#constructor - local.tee $6 + local.tee $5 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $5 + local.get $4 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $6 + local.get $5 local.get $0 i32.const 7616 local.get $0 @@ -40024,58 +40018,56 @@ br $for-loop|0 end end - i32.const 0 - local.set $0 - local.get $5 + local.get $4 i32.load offset=4 - local.set $7 - local.get $5 + local.set $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $8 + local.tee $6 i32.const 1 i32.gt_u if - local.get $8 + local.get $6 i32.const 1 i32.shr_u - local.set $3 - local.get $8 + local.set $7 + local.get $6 i32.const 1 i32.sub - local.set $8 + local.set $6 loop $while-continue|0 - local.get $0 - local.get $3 + local.get $1 + local.get $7 i32.lt_u if - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $7 + local.get $0 i32.add - local.tee $9 + local.tee $8 f64.load local.set $2 - local.get $9 local.get $8 - local.get $0 + local.get $6 + local.get $1 i32.sub i32.const 3 i32.shl - local.get $7 + local.get $0 i32.add - local.tee $9 + local.tee $8 f64.load f64.store - local.get $9 + local.get $8 local.get $2 f64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -40084,14 +40076,14 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $5 + local.get $4 local.get $0 call $~lib/typedarray/Float64Array#__get i32.const 7616 - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 @@ -40115,7 +40107,7 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 4 i32.const 8 call $~lib/typedarray/Float64Array#subarray @@ -40123,6 +40115,8 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=12 + i32.const 0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -40360,9 +40354,9 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f64) + (local $3 f32) + (local $4 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -40384,145 +40378,145 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $8 i32.store offset=4 - local.get $1 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int8Array#constructor - local.tee $8 + local.tee $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $8 + local.get $9 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 i32.const 15 i32.const 11312 call $~lib/rt/__newArray - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=16 - local.get $8 - local.get $7 + local.get $9 + local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner1 - local.get $8 + block $folding-inner0 + local.get $9 i32.load offset=8 i32.const 11100 i32.load i32.const 3 i32.add i32.lt_s - br_if $folding-inner1 - local.get $8 + br_if $folding-inner0 + local.get $9 i32.load offset=4 i32.const 3 i32.add - local.set $7 + local.set $5 i32.const 11092 i32.load - local.set $9 + local.set $10 i32.const 11100 i32.load - local.set $10 + local.set $6 loop $for-loop|0 - local.get $0 - local.get $10 + local.get $1 + local.get $6 i32.lt_s if - local.get $0 - local.get $7 + local.get $1 + local.get $5 i32.add - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add f32.load - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f32.sub f32.const 0 f32.eq if (result i32) - local.get $4 + local.get $3 i32.trunc_f32_s else i32.const 0 end i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -40531,80 +40525,80 @@ i32.const 15 i32.const 11392 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $8 - local.get $6 + local.get $9 + local.get $7 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 i32.const 15 i32.const 11424 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 - local.get $8 + local.get $9 i32.load offset=8 i32.const 11196 i32.load i32.const 2 i32.add i32.lt_s - br_if $folding-inner1 - local.get $8 + br_if $folding-inner0 + local.get $9 i32.load offset=4 i32.const 2 i32.add - local.set $0 + local.set $1 i32.const 11188 i32.load - local.set $6 + local.set $5 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|05 - local.get $3 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add f64.load - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f64.sub f64.const 0 f64.eq if (result i32) - local.get $5 + local.get $4 i32.trunc_f64_s else i32.const 0 end i32.store8 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|05 end end @@ -40613,23 +40607,23 @@ i32.const 15 i32.const 11456 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + local.get $9 local.get $8 - local.get $1 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $8 - local.get $2 + local.get $9 + local.get $0 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $8 + local.get $9 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -40640,7 +40634,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $9 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer @@ -40749,9 +40743,9 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f64) + (local $3 f32) + (local $4 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -40773,145 +40767,145 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $8 i32.store offset=4 - local.get $1 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.tee $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $8 + local.get $9 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 i32.const 63 i32.const 11520 call $~lib/rt/__newArray - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=16 - local.get $8 - local.get $7 + local.get $9 + local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner1 - local.get $8 + block $folding-inner0 + local.get $9 i32.load offset=8 i32.const 11100 i32.load i32.const 3 i32.add i32.lt_s - br_if $folding-inner1 - local.get $8 + br_if $folding-inner0 + local.get $9 i32.load offset=4 i32.const 3 i32.add - local.set $7 + local.set $5 i32.const 11092 i32.load - local.set $9 + local.set $10 i32.const 11100 i32.load - local.set $10 + local.set $6 loop $for-loop|0 - local.get $0 - local.get $10 + local.get $1 + local.get $6 i32.lt_s if - local.get $0 - local.get $7 + local.get $1 + local.get $5 i32.add - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add f32.load - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f32.sub f32.const 0 f32.eq if (result i32) - local.get $4 + local.get $3 i32.trunc_f32_u else i32.const 0 end i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -40920,80 +40914,80 @@ i32.const 63 i32.const 11600 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $8 - local.get $6 + local.get $9 + local.get $7 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 i32.const 63 i32.const 11632 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 - local.get $8 + local.get $9 i32.load offset=8 i32.const 11196 i32.load i32.const 2 i32.add i32.lt_s - br_if $folding-inner1 - local.get $8 + br_if $folding-inner0 + local.get $9 i32.load offset=4 i32.const 2 i32.add - local.set $0 + local.set $1 i32.const 11188 i32.load - local.set $6 + local.set $5 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|05 - local.get $3 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add f64.load - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f64.sub f64.const 0 f64.eq if (result i32) - local.get $5 + local.get $4 i32.trunc_f64_u else i32.const 0 end i32.store8 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|05 end end @@ -41002,23 +40996,23 @@ i32.const 63 i32.const 11664 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + local.get $9 local.get $8 - local.get $1 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $8 - local.get $2 + local.get $9 + local.get $0 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $8 + local.get $9 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -41029,7 +41023,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $9 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer @@ -41215,17 +41209,17 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $8 + local.tee $10 i32.store offset=8 - local.get $8 + local.get $10 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $8 + local.get $10 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $8 + local.get $10 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -41246,35 +41240,35 @@ br_if $folding-inner0 local.get $11 i32.load offset=4 - local.set $12 + local.set $8 i32.const 11012 i32.load - local.set $13 + local.set $12 i32.const 11020 i32.load - local.set $9 + local.set $13 loop $for-loop|0 local.get $0 - local.get $9 + local.get $13 i32.lt_s if local.get $0 - local.get $12 + local.get $8 i32.add i32.const 255 local.get $0 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.load - local.tee $10 + local.tee $9 i32.sub i32.const 31 i32.shr_s - local.get $10 + local.get $9 i32.or - local.get $10 + local.get $9 i32.const 31 i32.shr_s i32.const -1 @@ -41318,13 +41312,13 @@ local.set $0 i32.const 11092 i32.load - local.set $9 + local.set $8 i32.const 11100 i32.load - local.set $10 + local.set $9 loop $for-loop|05 local.get $1 - local.get $10 + local.get $9 i32.lt_s if local.get $0 @@ -41333,7 +41327,7 @@ local.get $1 i32.const 2 i32.shl - local.get $9 + local.get $8 i32.add f32.load local.tee $4 @@ -41462,7 +41456,7 @@ local.get $7 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $11 - local.get $8 + local.get $10 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer @@ -41598,9 +41592,9 @@ i32.add i32.load16_s local.tee $4 - local.get $5 local.get $1 i32.load offset=4 + local.get $5 i32.add i32.load16_s local.tee $5 @@ -41643,9 +41637,9 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f64) + (local $3 f32) + (local $4 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -41667,149 +41661,149 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $8 i32.store offset=4 - local.get $1 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int16Array#constructor - local.tee $8 + local.tee $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $8 + local.get $9 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 i32.const 64 i32.const 11952 call $~lib/rt/__newArray - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=16 - local.get $8 - local.get $7 + local.get $9 + local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner1 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add - local.get $8 + local.get $9 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s - br_if $folding-inner1 - local.get $8 + br_if $folding-inner0 + local.get $9 i32.load offset=4 i32.const 6 i32.add - local.set $7 + local.set $5 i32.const 11092 i32.load - local.set $9 + local.set $10 i32.const 11100 i32.load - local.set $10 + local.set $6 loop $for-loop|0 - local.get $0 - local.get $10 + local.get $1 + local.get $6 i32.lt_s if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $7 + local.get $5 i32.add - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add f32.load - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f32.sub f32.const 0 f32.eq if (result i32) - local.get $4 + local.get $3 i32.trunc_f32_s else i32.const 0 end i32.store16 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -41818,27 +41812,27 @@ i32.const 64 i32.const 12048 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $8 - local.get $6 + local.get $9 + local.get $7 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 i32.const 64 i32.const 12096 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -41847,55 +41841,55 @@ i32.load i32.const 2 i32.add - local.get $8 + local.get $9 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s - br_if $folding-inner1 - local.get $8 + br_if $folding-inner0 + local.get $9 i32.load offset=4 i32.const 4 i32.add - local.set $0 + local.set $1 i32.const 11188 i32.load - local.set $6 + local.set $5 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|05 - local.get $3 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if - local.get $3 + local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add f64.load - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f64.sub f64.const 0 f64.eq if (result i32) - local.get $5 + local.get $4 i32.trunc_f64_s else i32.const 0 end i32.store16 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|05 end end @@ -41904,23 +41898,23 @@ i32.const 64 i32.const 12144 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + local.get $9 local.get $8 - local.get $1 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $8 - local.get $2 + local.get $9 + local.get $0 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $8 + local.get $9 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -41931,7 +41925,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $9 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer @@ -42000,9 +41994,9 @@ i32.add i32.load16_u local.tee $4 - local.get $5 local.get $1 i32.load offset=4 + local.get $5 i32.add i32.load16_u local.tee $5 @@ -42045,9 +42039,9 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f64) + (local $3 f32) + (local $4 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -42069,149 +42063,149 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $8 i32.store offset=4 - local.get $1 + local.get $8 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $8 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint16Array#constructor - local.tee $8 + local.tee $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $8 + local.get $9 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 i32.const 65 i32.const 12240 call $~lib/rt/__newArray - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.store offset=16 - local.get $8 - local.get $7 + local.get $9 + local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner1 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add - local.get $8 + local.get $9 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s - br_if $folding-inner1 - local.get $8 + br_if $folding-inner0 + local.get $9 i32.load offset=4 i32.const 6 i32.add - local.set $7 + local.set $5 i32.const 11092 i32.load - local.set $9 + local.set $10 i32.const 11100 i32.load - local.set $10 + local.set $6 loop $for-loop|0 - local.get $0 - local.get $10 + local.get $1 + local.get $6 i32.lt_s if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $7 + local.get $5 i32.add - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add f32.load - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f32.sub f32.const 0 f32.eq if (result i32) - local.get $4 + local.get $3 i32.trunc_f32_u else i32.const 0 end i32.store16 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -42220,27 +42214,27 @@ i32.const 65 i32.const 12336 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $8 - local.get $6 + local.get $9 + local.get $7 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 i32.const 65 i32.const 12384 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -42249,55 +42243,55 @@ i32.load i32.const 2 i32.add - local.get $8 + local.get $9 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s - br_if $folding-inner1 - local.get $8 + br_if $folding-inner0 + local.get $9 i32.load offset=4 i32.const 4 i32.add - local.set $0 + local.set $1 i32.const 11188 i32.load - local.set $6 + local.set $5 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|05 - local.get $3 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if - local.get $3 + local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add f64.load - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f64.sub f64.const 0 f64.eq if (result i32) - local.get $5 + local.get $4 i32.trunc_f64_u else i32.const 0 end i32.store16 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|05 end end @@ -42306,23 +42300,23 @@ i32.const 65 i32.const 12432 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $8 - local.get $0 + local.get $9 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + local.get $9 local.get $8 - local.get $1 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $8 - local.get $2 + local.get $9 + local.get $0 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $8 + local.get $9 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -42333,7 +42327,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $9 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer @@ -42402,9 +42396,9 @@ i32.add i32.load local.tee $4 - local.get $5 local.get $1 i32.load offset=4 + local.get $5 i32.add i32.load local.tee $5 @@ -42472,29 +42466,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $5 i32.store - local.get $6 + local.get $5 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -42522,17 +42516,17 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -42553,17 +42547,17 @@ i32.const 16 i32.const 12528 call $~lib/rt/__newArray - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=16 local.get $9 - local.get $5 + local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner1 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 @@ -42573,33 +42567,33 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner1 + br_if $folding-inner0 local.get $9 i32.load offset=4 i32.const 12 i32.add - local.set $7 + local.set $6 i32.const 11092 i32.load local.set $10 i32.const 11100 i32.load - local.set $11 + local.set $7 loop $for-loop|0 - local.get $0 - local.get $11 + local.get $2 + local.get $7 i32.lt_s if - local.get $10 - local.get $0 + local.get $2 i32.const 2 i32.shl - local.tee $5 + local.tee $11 + local.get $10 i32.add f32.load local.set $3 - local.get $5 - local.get $7 + local.get $6 + local.get $11 i32.add local.get $3 local.get $3 @@ -42613,10 +42607,10 @@ i32.const 0 end i32.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end @@ -42625,27 +42619,27 @@ i32.const 16 i32.const 12640 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $9 - local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $9 - local.get $6 + local.get $5 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 2 i32.const 16 i32.const 12704 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $9 - local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -42659,12 +42653,12 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner1 + br_if $folding-inner0 local.get $9 i32.load offset=4 i32.const 8 i32.add - local.set $0 + local.set $2 i32.const 11188 i32.load local.set $5 @@ -42672,16 +42666,16 @@ i32.load local.set $6 loop $for-loop|05 - local.get $2 + local.get $1 local.get $6 i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl - local.get $0 - i32.add local.get $2 + i32.add + local.get $1 i32.const 3 i32.shl local.get $5 @@ -42699,10 +42693,10 @@ i32.const 0 end i32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|05 end end @@ -42711,18 +42705,18 @@ i32.const 16 i32.const 12768 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 local.get $9 - local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $9 local.get $8 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $9 - local.get $1 + local.get $0 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -42807,9 +42801,9 @@ i32.add i32.load local.tee $4 - local.get $5 local.get $1 i32.load offset=4 + local.get $5 i32.add i32.load local.tee $5 @@ -42877,29 +42871,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $5 i32.store - local.get $6 + local.get $5 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -42927,17 +42921,17 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -42958,17 +42952,17 @@ i32.const 66 i32.const 12896 call $~lib/rt/__newArray - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=16 local.get $9 - local.get $5 + local.get $6 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner1 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 @@ -42978,33 +42972,33 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner1 + br_if $folding-inner0 local.get $9 i32.load offset=4 i32.const 12 i32.add - local.set $7 + local.set $6 i32.const 11092 i32.load local.set $10 i32.const 11100 i32.load - local.set $11 + local.set $7 loop $for-loop|0 - local.get $0 - local.get $11 + local.get $2 + local.get $7 i32.lt_s if - local.get $10 - local.get $0 + local.get $2 i32.const 2 i32.shl - local.tee $5 + local.tee $11 + local.get $10 i32.add f32.load local.set $3 - local.get $5 - local.get $7 + local.get $6 + local.get $11 i32.add local.get $3 local.get $3 @@ -43018,10 +43012,10 @@ i32.const 0 end i32.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end @@ -43030,27 +43024,27 @@ i32.const 66 i32.const 13008 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $9 - local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $9 - local.get $6 + local.get $5 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 2 i32.const 66 i32.const 13072 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $9 - local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -43064,12 +43058,12 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner1 + br_if $folding-inner0 local.get $9 i32.load offset=4 i32.const 8 i32.add - local.set $0 + local.set $2 i32.const 11188 i32.load local.set $5 @@ -43077,16 +43071,16 @@ i32.load local.set $6 loop $for-loop|05 - local.get $2 + local.get $1 local.get $6 i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl - local.get $0 - i32.add local.get $2 + i32.add + local.get $1 i32.const 3 i32.shl local.get $5 @@ -43104,10 +43098,10 @@ i32.const 0 end i32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|05 end end @@ -43116,18 +43110,18 @@ i32.const 66 i32.const 13136 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 local.get $9 - local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $9 local.get $8 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $9 - local.get $1 + local.get $0 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -43213,9 +43207,9 @@ i32.add i64.load local.tee $5 - local.get $4 local.get $1 i32.load offset=4 + local.get $4 i32.add i64.load local.tee $6 @@ -43371,7 +43365,7 @@ global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner1 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 @@ -43381,7 +43375,7 @@ i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner1 + br_if $folding-inner0 local.get $8 i32.load offset=4 i32.const 24 @@ -43467,7 +43461,7 @@ i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner1 + br_if $folding-inner0 local.get $8 i32.load offset=4 i32.const 16 @@ -43616,9 +43610,9 @@ i32.add i64.load local.tee $5 - local.get $4 local.get $1 i32.load offset=4 + local.get $4 i32.add i64.load local.tee $6 @@ -43774,7 +43768,7 @@ global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner1 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 @@ -43784,7 +43778,7 @@ i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner1 + br_if $folding-inner0 local.get $8 i32.load offset=4 i32.const 24 @@ -43870,7 +43864,7 @@ i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner1 + br_if $folding-inner0 local.get $8 i32.load offset=4 i32.const 16 @@ -44019,9 +44013,9 @@ i32.add f32.load local.tee $5 - local.get $4 local.get $1 i32.load offset=4 + local.get $4 i32.add f32.load local.tee $6 @@ -44102,55 +44096,55 @@ local.get $5 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $5 i32.store - local.get $6 + local.get $5 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $5 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 + local.get $6 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $6 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $6 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $6 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $8 + local.tee $7 i32.store offset=8 - local.get $8 + local.get $7 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $8 + local.get $7 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $8 + local.get $7 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set @@ -44173,34 +44167,34 @@ br_if $folding-inner0 local.get $10 i32.load offset=4 - local.set $9 + local.set $8 i32.const 11012 i32.load local.set $11 i32.const 11020 i32.load - local.set $12 + local.set $9 loop $for-loop|0 - local.get $0 - local.get $12 + local.get $4 + local.get $9 i32.lt_s if - local.get $9 - local.get $0 + local.get $8 + local.get $4 i32.const 2 i32.shl - local.tee $5 + local.tee $12 i32.add - local.get $5 local.get $11 + local.get $12 i32.add i32.load f32.convert_i32_s f32.store - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|0 end end @@ -44209,12 +44203,12 @@ i32.const 61 i32.const 14480 call $~lib/rt/__newArray - local.set $0 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=16 local.get $10 - local.get $0 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -44228,14 +44222,14 @@ i32.const 61 i32.const 14592 call $~lib/rt/__newArray - local.set $0 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=16 local.get $10 - local.get $0 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $6 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u @@ -44251,37 +44245,37 @@ i32.load offset=4 i32.const 24 i32.add - local.set $0 - local.get $6 + local.set $4 + local.get $5 i32.load offset=4 - local.set $5 - local.get $6 + local.set $8 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 + local.set $5 loop $for-loop|02 - local.get $1 - local.get $6 + local.get $0 + local.get $5 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $4 i32.add - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $5 + local.get $8 i32.add i64.load f32.convert_i64_s f32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|02 end end @@ -44297,7 +44291,7 @@ local.get $10 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $7 + local.get $6 i32.load offset=8 local.get $10 i32.load offset=8 @@ -44308,36 +44302,36 @@ local.get $10 i32.load offset=4 local.set $0 - local.get $7 + local.get $6 i32.load offset=4 - local.set $1 - local.get $7 + local.set $4 + local.get $6 i32.load offset=8 local.set $5 loop $for-loop|06 - local.get $2 + local.get $1 local.get $5 i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl local.get $0 i32.add local.get $1 - local.get $2 + local.get $4 i32.add i32.load8_u f32.convert_i32_u f32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|06 end end - local.get $8 + local.get $7 i32.load offset=8 i32.const 1 i32.shr_u @@ -44354,25 +44348,25 @@ i32.const 16 i32.add local.set $0 - local.get $8 + local.get $7 i32.load offset=4 local.set $1 - local.get $8 + local.get $7 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $4 loop $for-loop|010 local.get $2 - local.get $3 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $3 + local.get $2 i32.const 2 i32.shl local.get $0 i32.add - local.get $3 + local.get $2 i32.const 1 i32.shl local.get $1 @@ -44380,10 +44374,10 @@ i32.load16_s f32.convert_i32_s f32.store - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|010 end end @@ -44413,24 +44407,24 @@ local.set $2 loop $for-loop|016 local.get $2 - local.get $4 + local.get $3 i32.gt_s if - local.get $4 + local.get $3 i32.const 2 i32.shl local.get $0 i32.add local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_s f32.convert_i32_s f32.store - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|016 end end @@ -44513,9 +44507,9 @@ i32.add f64.load local.tee $5 - local.get $4 local.get $1 i32.load offset=4 + local.get $4 i32.add f64.load local.tee $6 @@ -45004,15 +44998,15 @@ (local $7 f64) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i64) + (local $10 i64) + (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) - (local $15 i64) - (local $16 i32) - (local $17 f32) - (local $18 f64) + (local $14 i64) + (local $15 i32) + (local $16 f32) + (local $17 f64) + (local $18 i32) (local $19 i32) (local $20 i32) (local $21 i32) @@ -45054,18 +45048,17 @@ (local $57 i32) (local $58 i32) (local $59 i32) - (local $60 i64) + (local $60 i32) (local $61 i32) - (local $62 i32) - (local $63 i32) + (local $62 i64) + (local $63 i64) (local $64 i64) - (local $65 i64) - (local $66 f32) - (local $67 f64) + (local $65 f32) + (local $66 f64) + (local $67 i32) (local $68 i32) (local $69 i32) (local $70 i32) - (local $71 i32) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub @@ -45091,11 +45084,11 @@ block $folding-inner23 block $folding-inner22 block $folding-inner21 - block $folding-inner19 + block $folding-inner17 block $folding-inner16 block $folding-inner20 - block $folding-inner18 - block $folding-inner17 + block $folding-inner19 + block $folding-inner18 block $folding-inner15 block $folding-inner14 block $folding-inner13 @@ -45194,7 +45187,7 @@ i32.load offset=4 local.get $0 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -45775,41 +45768,41 @@ call $~lib/typedarray/Int32Array#__set local.get $6 i32.load offset=4 - local.set $3 + local.set $2 i32.const 1 local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 1 i32.gt_u select - local.set $0 + local.set $8 i32.const 3 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.const 3 i32.gt_u select - local.set $2 + local.set $0 loop $for-loop|0 local.get $0 - local.get $2 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.const 1 i32.store - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|0 end end @@ -45836,30 +45829,30 @@ end local.get $6 i32.load offset=4 - local.set $3 + local.set $2 local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - i32.const 0 local.set $0 + i32.const 0 + local.set $8 loop $for-loop|01 local.get $0 - local.get $2 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.const 0 i32.store - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|01 end end @@ -45886,38 +45879,38 @@ end local.get $6 i32.load offset=4 - local.set $3 + local.set $2 i32.const 0 - local.set $0 + local.set $8 local.get $6 i32.load offset=8 i32.const 2 i32.shr_u i32.const 3 i32.sub - local.tee $2 + local.tee $0 i32.const 0 - local.get $2 + local.get $0 i32.const 0 i32.gt_s select - local.set $2 + local.set $0 loop $for-loop|03 local.get $0 - local.get $2 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.const 1 i32.store - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|03 end end @@ -45958,23 +45951,23 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $8 loop $for-loop|05 - local.get $0 local.get $2 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 2 i32.shl local.get $3 i32.add i32.const 2 i32.store - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|05 end end @@ -46012,23 +46005,23 @@ i32.const 1 i32.gt_u select - local.set $0 + local.set $8 loop $for-loop|07 - local.get $0 + local.get $8 i32.const 0 i32.lt_s if - local.get $0 + local.get $8 i32.const 2 i32.shl local.get $2 i32.add i32.const 0 i32.store - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|07 end end @@ -46971,7 +46964,7 @@ i32.load offset=4 local.get $0 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -47030,7 +47023,7 @@ i32.load offset=4 local.get $0 i32.load - i32.sub + i32.ne if i32.const 0 i32.const 1568 @@ -47158,32 +47151,32 @@ local.set $2 loop $for-loop|010 local.get $2 - local.get $10 + local.get $18 i32.gt_s if local.get $3 - local.get $10 + local.get $18 i32.add i32.load8_s local.set $0 i32.const 4 global.set $~argumentsLength - local.get $53 + local.get $57 local.get $0 - local.get $10 + local.get $18 local.get $4 i32.const 2896 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $53 - local.get $10 + local.set $57 + local.get $18 i32.const 1 i32.add - local.set $10 + local.set $18 br $for-loop|010 end end - local.get $53 + local.get $57 i32.const 255 i32.and i32.const 6 @@ -47233,32 +47226,32 @@ local.set $2 loop $for-loop|0511 local.get $2 - local.get $8 + local.get $31 i32.gt_s if local.get $3 - local.get $8 + local.get $31 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $54 + local.get $58 local.get $0 - local.get $8 + local.get $31 local.get $4 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $54 - local.get $8 + local.set $58 + local.get $31 i32.const 1 i32.add - local.set $8 + local.set $31 br $for-loop|0511 end end - local.get $54 + local.get $58 i32.const 255 i32.and i32.const 6 @@ -47308,32 +47301,32 @@ local.set $2 loop $for-loop|013 local.get $2 - local.get $9 + local.get $32 i32.gt_s if local.get $3 - local.get $9 + local.get $32 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $55 + local.get $59 local.get $0 - local.get $9 + local.get $32 local.get $4 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $55 - local.get $9 + local.set $59 + local.get $32 i32.const 1 i32.add - local.set $9 + local.set $32 br $for-loop|013 end end - local.get $55 + local.get $59 i32.const 255 i32.and i32.const 6 @@ -47385,10 +47378,10 @@ local.set $2 loop $for-loop|017 local.get $2 - local.get $12 + local.get $33 i32.gt_s if - local.get $12 + local.get $33 i32.const 1 i32.shl local.get $3 @@ -47397,22 +47390,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $56 + local.get $60 local.get $0 - local.get $12 + local.get $33 local.get $4 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $56 - local.get $12 + local.set $60 + local.get $33 i32.const 1 i32.add - local.set $12 + local.set $33 br $for-loop|017 end end - local.get $56 + local.get $60 i32.const 65535 i32.and i32.const 6 @@ -47464,10 +47457,10 @@ local.set $2 loop $for-loop|022 local.get $2 - local.get $19 + local.get $34 i32.gt_s if - local.get $19 + local.get $34 i32.const 1 i32.shl local.get $3 @@ -47476,22 +47469,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $57 + local.get $61 local.get $0 - local.get $19 + local.get $34 local.get $4 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $57 - local.get $19 + local.set $61 + local.get $34 i32.const 1 i32.add - local.set $19 + local.set $34 br $for-loop|022 end end - local.get $57 + local.get $61 i32.const 65535 i32.and i32.const 6 @@ -47543,10 +47536,10 @@ local.set $2 loop $for-loop|027 local.get $2 - local.get $20 + local.get $35 i32.gt_s if - local.get $20 + local.get $35 i32.const 2 i32.shl local.get $3 @@ -47555,22 +47548,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $58 + local.get $67 local.get $0 - local.get $20 + local.get $35 local.get $4 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $58 - local.get $20 + local.set $67 + local.get $35 i32.const 1 i32.add - local.set $20 + local.set $35 br $for-loop|027 end end - local.get $58 + local.get $67 i32.const 6 i32.ne br_if $folding-inner1 @@ -47620,10 +47613,10 @@ local.set $2 loop $for-loop|032 local.get $2 - local.get $32 + local.get $36 i32.gt_s if - local.get $32 + local.get $36 i32.const 2 i32.shl local.get $3 @@ -47632,22 +47625,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $59 + local.get $68 local.get $0 - local.get $32 + local.get $36 local.get $4 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $59 - local.get $32 + local.set $68 + local.get $36 i32.const 1 i32.add - local.set $32 + local.set $36 br $for-loop|032 end end - local.get $59 + local.get $68 i32.const 6 i32.ne br_if $folding-inner1 @@ -47697,34 +47690,34 @@ local.set $0 loop $for-loop|037 local.get $0 - local.get $33 + local.get $37 i32.gt_s if - local.get $33 + local.get $37 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $11 + local.set $10 i32.const 4 global.set $~argumentsLength - local.get $15 - local.get $11 - local.get $33 + local.get $14 + local.get $10 + local.get $37 local.get $3 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $15 - local.get $33 + local.set $14 + local.get $37 i32.const 1 i32.add - local.set $33 + local.set $37 br $for-loop|037 end end - local.get $15 + local.get $14 i64.const 6 i64.ne br_if $folding-inner1 @@ -47774,34 +47767,34 @@ local.set $0 loop $for-loop|042 local.get $0 - local.get $34 + local.get $38 i32.gt_s if - local.get $34 + local.get $38 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $11 + local.set $10 i32.const 4 global.set $~argumentsLength - local.get $60 - local.get $11 - local.get $34 + local.get $62 + local.get $10 + local.get $38 local.get $3 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $60 - local.get $34 + local.set $62 + local.get $38 i32.const 1 i32.add - local.set $34 + local.set $38 br $for-loop|042 end end - local.get $60 + local.get $62 i64.const 6 i64.ne br_if $folding-inner1 @@ -47851,10 +47844,10 @@ local.set $0 loop $for-loop|047 local.get $0 - local.get $35 + local.get $39 i32.gt_s if - local.get $35 + local.get $39 i32.const 2 i32.shl local.get $2 @@ -47863,22 +47856,22 @@ local.set $5 i32.const 4 global.set $~argumentsLength - local.get $17 + local.get $16 local.get $5 - local.get $35 + local.get $39 local.get $3 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $17 - local.get $35 + local.set $16 + local.get $39 i32.const 1 i32.add - local.set $35 + local.set $39 br $for-loop|047 end end - local.get $17 + local.get $16 f32.const 6 f32.ne br_if $folding-inner1 @@ -47928,10 +47921,10 @@ local.set $0 loop $for-loop|052 local.get $0 - local.get $36 + local.get $40 i32.gt_s if - local.get $36 + local.get $40 i32.const 3 i32.shl local.get $2 @@ -47940,22 +47933,22 @@ local.set $7 i32.const 4 global.set $~argumentsLength - local.get $18 + local.get $17 local.get $7 - local.get $36 + local.get $40 local.get $3 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $18 - local.get $36 + local.set $17 + local.get $40 i32.const 1 i32.add - local.set $36 + local.set $40 br $for-loop|052 end end - local.get $18 + local.get $17 f64.const 6 f64.ne br_if $folding-inner1 @@ -48539,59 +48532,59 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3248 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|059 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $2 + local.get $8 i32.add i32.load8_s - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $61 - local.get $2 + local.get $69 local.get $0 - local.get $4 + local.get $8 + local.get $3 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $61 - local.get $0 + local.set $69 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|059 end end - local.get $61 + local.get $69 i32.const 255 i32.and i32.const 6 @@ -48616,59 +48609,59 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3280 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|064 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $2 + local.get $8 i32.add i32.load8_u - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $62 - local.get $2 + local.get $70 local.get $0 - local.get $4 + local.get $8 + local.get $3 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $62 - local.get $0 + local.set $70 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|064 end end - local.get $62 + local.get $70 i32.const 255 i32.and i32.const 6 @@ -48693,59 +48686,59 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 3312 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|071 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $2 + local.get $8 i32.add i32.load8_u - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $63 - local.get $2 + local.get $12 local.get $0 - local.get $4 + local.get $8 + local.get $3 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $63 - local.get $0 + local.set $12 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|071 end end - local.get $63 + local.get $12 i32.const 255 i32.and i32.const 6 @@ -48770,63 +48763,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 3344 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|076 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 + local.get $8 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_s - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $68 - local.get $2 + local.get $15 local.get $0 - local.get $4 + local.get $8 + local.get $3 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $68 - local.get $0 + local.set $15 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|076 end end - local.get $68 + local.get $15 i32.const 65535 i32.and i32.const 6 @@ -48851,63 +48844,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 3376 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|081 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 + local.get $8 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $69 - local.get $2 + local.get $11 local.get $0 - local.get $4 + local.get $8 + local.get $3 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $69 - local.get $0 + local.set $11 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|081 end end - local.get $69 + local.get $11 i32.const 65535 i32.and i32.const 6 @@ -48932,63 +48925,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|086 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 + local.get $8 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $70 - local.get $2 + local.get $13 local.get $0 - local.get $4 + local.get $8 + local.get $3 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $70 - local.get $0 + local.set $13 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|086 end end - local.get $70 + local.get $13 i32.const 6 i32.ne br_if $folding-inner5 @@ -49011,63 +49004,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|091 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 + local.get $8 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $71 - local.get $2 + local.get $9 local.get $0 - local.get $4 + local.get $8 + local.get $3 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $71 - local.get $0 + local.set $9 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|091 end end - local.get $71 + local.get $9 i32.const 6 i32.ne br_if $folding-inner5 @@ -49090,63 +49083,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|096 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 + local.get $8 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add i64.load - local.set $11 + local.set $10 i32.const 4 global.set $~argumentsLength - local.get $64 - local.get $11 - local.get $0 - local.get $3 + local.get $63 + local.get $10 + local.get $8 + local.get $2 i32.const 3472 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $64 - local.get $0 + local.set $63 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|096 end end - local.get $64 + local.get $63 i64.const 6 i64.ne br_if $folding-inner5 @@ -49169,63 +49162,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|0101 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 + local.get $8 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add i64.load - local.set $11 + local.set $10 i32.const 4 global.set $~argumentsLength - local.get $65 - local.get $11 - local.get $0 - local.get $3 + local.get $64 + local.get $10 + local.get $8 + local.get $2 i32.const 3504 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $65 - local.get $0 + local.set $64 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|0101 end end - local.get $65 + local.get $64 i64.const 6 i64.ne br_if $folding-inner5 @@ -49248,63 +49241,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|0106 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 + local.get $8 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add f32.load local.set $5 i32.const 4 global.set $~argumentsLength - local.get $66 + local.get $65 local.get $5 - local.get $0 - local.get $3 + local.get $8 + local.get $2 i32.const 3536 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $66 - local.get $0 + local.set $65 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|0106 end end - local.get $66 + local.get $65 f32.const 6 f32.ne br_if $folding-inner5 @@ -49327,63 +49320,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $8 loop $for-loop|0111 - local.get $0 + local.get $8 i32.const 0 i32.ge_s if - local.get $0 + local.get $8 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add f64.load local.set $7 i32.const 4 global.set $~argumentsLength - local.get $67 + local.get $66 local.get $7 - local.get $0 - local.get $3 + local.get $8 + local.get $2 i32.const 3568 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $67 - local.get $0 + local.set $66 + local.get $8 i32.const 1 i32.sub - local.set $0 + local.set $8 br $for-loop|0111 end end - local.get $67 + local.get $66 f64.const 6 f64.ne br_if $folding-inner5 @@ -49392,7 +49385,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $10 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49461,30 +49454,30 @@ i32.store offset=4 loop $for-loop|02 local.get $6 - local.get $10 + local.get $12 i32.gt_s if local.get $4 - local.get $10 + local.get $12 i32.add i32.load8_s local.set $0 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $10 + local.get $12 i32.add local.get $0 - local.get $10 + local.get $12 local.get $9 i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 + local.set $12 br $for-loop|02 end end @@ -49520,7 +49513,7 @@ call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $3 i32.const 2 call $~lib/typedarray/Int8Array#__get @@ -49532,7 +49525,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $10 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49601,30 +49594,30 @@ i32.store offset=4 loop $for-loop|04 local.get $6 - local.get $10 + local.get $12 i32.gt_s if local.get $4 - local.get $10 + local.get $12 i32.add i32.load8_u local.set $0 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $10 + local.get $12 i32.add local.get $0 - local.get $10 + local.get $12 local.get $9 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 + local.set $12 br $for-loop|04 end end @@ -49660,7 +49653,7 @@ call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $3 i32.const 2 call $~lib/typedarray/Uint8Array#__get @@ -49672,7 +49665,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $10 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49741,30 +49734,30 @@ i32.store offset=4 loop $for-loop|08 local.get $6 - local.get $10 + local.get $12 i32.gt_s if local.get $4 - local.get $10 + local.get $12 i32.add i32.load8_u local.set $0 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $10 + local.get $12 i32.add local.get $0 - local.get $10 + local.get $12 local.get $9 i32.const 3664 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $10 + local.get $12 i32.const 1 i32.add - local.set $10 + local.set $12 br $for-loop|08 end end @@ -49800,7 +49793,7 @@ call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $3 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get @@ -49811,6 +49804,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49884,11 +49879,11 @@ i32.store offset=4 loop $for-loop|06 local.get $9 - local.get $14 + local.get $13 i32.gt_s if local.get $8 - local.get $14 + local.get $13 i32.const 1 i32.shl local.tee $2 @@ -49901,16 +49896,16 @@ local.get $3 i32.add local.get $0 - local.get $14 + local.get $13 local.get $12 i32.const 3696 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $14 + local.get $13 i32.const 1 i32.add - local.set $14 + local.set $13 br $for-loop|06 end end @@ -49946,7 +49941,7 @@ call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $6 i32.const 2 call $~lib/typedarray/Int16Array#__get @@ -49958,7 +49953,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $14 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50032,11 +50027,11 @@ i32.store offset=4 loop $for-loop|011 local.get $9 - local.get $14 + local.get $13 i32.gt_s if local.get $8 - local.get $14 + local.get $13 i32.const 1 i32.shl local.tee $2 @@ -50049,16 +50044,16 @@ local.get $3 i32.add local.get $0 - local.get $14 + local.get $13 local.get $12 i32.const 3728 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $14 + local.get $13 i32.const 1 i32.add - local.set $14 + local.set $13 br $for-loop|011 end end @@ -50094,7 +50089,7 @@ call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $6 i32.const 2 call $~lib/typedarray/Uint16Array#__get @@ -50106,7 +50101,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $14 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50180,11 +50175,11 @@ i32.store offset=4 loop $for-loop|014 local.get $9 - local.get $14 + local.get $13 i32.gt_s if local.get $8 - local.get $14 + local.get $13 i32.const 2 i32.shl local.tee $2 @@ -50197,16 +50192,16 @@ local.get $3 i32.add local.get $0 - local.get $14 + local.get $13 local.get $12 i32.const 3760 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $14 + local.get $13 i32.const 1 i32.add - local.set $14 + local.set $13 br $for-loop|014 end end @@ -50242,7 +50237,7 @@ call $~lib/typedarray/Int32Array#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $6 i32.const 2 call $~lib/typedarray/Int32Array#__get @@ -50254,7 +50249,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $14 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50328,11 +50323,11 @@ i32.store offset=4 loop $for-loop|016 local.get $9 - local.get $14 + local.get $13 i32.gt_s if local.get $8 - local.get $14 + local.get $13 i32.const 2 i32.shl local.tee $2 @@ -50345,16 +50340,16 @@ local.get $3 i32.add local.get $0 - local.get $14 + local.get $13 local.get $12 i32.const 3792 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $14 + local.get $13 i32.const 1 i32.add - local.set $14 + local.set $13 br $for-loop|016 end end @@ -50390,7 +50385,7 @@ call $~lib/typedarray/Uint32Array#__get i32.const 4 i32.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $6 i32.const 2 call $~lib/typedarray/Uint32Array#__get @@ -50402,7 +50397,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $14 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50421,17 +50416,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $10 + local.tee $11 i32.store - local.get $10 + local.get $11 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $10 + local.get $11 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $10 + local.get $11 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -50451,12 +50446,12 @@ local.tee $0 i64.const 0 i64.store - local.get $10 + local.get $11 i32.load offset=8 i32.const 3 i32.shr_u local.set $8 - local.get $10 + local.get $11 i32.load offset=4 local.set $6 local.get $0 @@ -50476,33 +50471,33 @@ i32.store offset=4 loop $for-loop|018 local.get $8 - local.get $14 + local.get $13 i32.gt_s if local.get $6 - local.get $14 + local.get $13 i32.const 3 i32.shl local.tee $0 i32.add i64.load - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength local.get $0 local.get $2 i32.add - local.get $11 - local.get $14 local.get $10 + local.get $13 + local.get $11 i32.const 3824 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $14 + local.get $13 i32.const 1 i32.add - local.set $14 + local.set $13 br $for-loop|018 end end @@ -50538,7 +50533,7 @@ call $~lib/typedarray/Int64Array#__get i64.const 4 i64.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $4 i32.const 2 call $~lib/typedarray/Int64Array#__get @@ -50550,7 +50545,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $14 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50569,17 +50564,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $10 + local.tee $11 i32.store - local.get $10 + local.get $11 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $10 + local.get $11 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $10 + local.get $11 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -50599,12 +50594,12 @@ local.tee $0 i64.const 0 i64.store - local.get $10 + local.get $11 i32.load offset=8 i32.const 3 i32.shr_u local.set $8 - local.get $10 + local.get $11 i32.load offset=4 local.set $6 local.get $0 @@ -50624,33 +50619,33 @@ i32.store offset=4 loop $for-loop|020 local.get $8 - local.get $14 + local.get $13 i32.gt_s if local.get $6 - local.get $14 + local.get $13 i32.const 3 i32.shl local.tee $0 i32.add i64.load - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength local.get $0 local.get $2 i32.add - local.get $11 - local.get $14 local.get $10 + local.get $13 + local.get $11 i32.const 3856 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $14 + local.get $13 i32.const 1 i32.add - local.set $14 + local.set $13 br $for-loop|020 end end @@ -50686,7 +50681,7 @@ call $~lib/typedarray/Uint64Array#__get i64.const 4 i64.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $4 i32.const 2 call $~lib/typedarray/Uint64Array#__get @@ -50698,7 +50693,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $14 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50717,17 +50712,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $10 + local.tee $11 i32.store - local.get $10 + local.get $11 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $10 + local.get $11 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $10 + local.get $11 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -50747,12 +50742,12 @@ local.tee $0 i64.const 0 i64.store - local.get $10 + local.get $11 i32.load offset=8 i32.const 2 i32.shr_u local.set $8 - local.get $10 + local.get $11 i32.load offset=4 local.set $6 local.get $0 @@ -50772,11 +50767,11 @@ i32.store offset=4 loop $for-loop|023 local.get $8 - local.get $14 + local.get $13 i32.gt_s if local.get $6 - local.get $14 + local.get $13 i32.const 2 i32.shl local.tee $0 @@ -50789,16 +50784,16 @@ local.get $2 i32.add local.get $5 - local.get $14 - local.get $10 + local.get $13 + local.get $11 i32.const 3888 i32.load call_indirect $0 (type $f32_i32_i32_=>_f32) f32.store - local.get $14 + local.get $13 i32.const 1 i32.add - local.set $14 + local.set $13 br $for-loop|023 end end @@ -50834,7 +50829,7 @@ call $~lib/typedarray/Float32Array#__get f32.const 4 f32.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $4 i32.const 2 call $~lib/typedarray/Float32Array#__get @@ -50846,7 +50841,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $14 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50865,17 +50860,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $10 + local.tee $11 i32.store - local.get $10 + local.get $11 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $10 + local.get $11 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $10 + local.get $11 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -50895,12 +50890,12 @@ local.tee $0 i64.const 0 i64.store - local.get $10 + local.get $11 i32.load offset=8 i32.const 3 i32.shr_u local.set $8 - local.get $10 + local.get $11 i32.load offset=4 local.set $6 local.get $0 @@ -50920,11 +50915,11 @@ i32.store offset=4 loop $for-loop|025 local.get $8 - local.get $14 + local.get $13 i32.gt_s if local.get $6 - local.get $14 + local.get $13 i32.const 3 i32.shl local.tee $0 @@ -50937,16 +50932,16 @@ local.get $2 i32.add local.get $7 - local.get $14 - local.get $10 + local.get $13 + local.get $11 i32.const 3920 i32.load call_indirect $0 (type $f64_i32_i32_=>_f64) f64.store - local.get $14 + local.get $13 i32.const 1 i32.add - local.set $14 + local.set $13 br $for-loop|025 end end @@ -50982,7 +50977,7 @@ call $~lib/typedarray/Float64Array#__get f64.const 4 f64.ne - br_if $folding-inner19 + br_if $folding-inner17 local.get $4 i32.const 2 call $~lib/typedarray/Float64Array#__get @@ -51005,7 +51000,9 @@ call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> i32.const 0 - local.set $0 + local.set $11 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51015,61 +51012,61 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4304 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4304 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 loop $for-loop|012 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $11 + i32.gt_s if - local.get $0 - local.get $4 + local.get $3 + local.get $11 i32.add i32.load8_s - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $6 + local.get $11 + local.get $4 i32.const 4304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $0 + local.get $11 i32.const 1 i32.add - local.set $0 + local.set $11 br $for-loop|012 end end @@ -51077,14 +51074,14 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4336 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4336 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 local.set $2 loop $for-loop|0410 @@ -51102,7 +51099,7 @@ i32.const 1 local.get $0 local.get $13 - local.get $6 + local.get $4 i32.const 4336 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51123,7 +51120,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $11 i32.const 0 local.set $13 global.get $~lib/memory/__stack_pointer @@ -51135,61 +51132,61 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4368 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4368 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 loop $for-loop|01426 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $11 + i32.gt_s if - local.get $0 - local.get $4 + local.get $3 + local.get $11 i32.add i32.load8_u - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $6 + local.get $11 + local.get $4 i32.const 4368 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $0 + local.get $11 i32.const 1 i32.add - local.set $0 + local.set $11 br $for-loop|01426 end end @@ -51197,14 +51194,14 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4400 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4400 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 local.set $2 loop $for-loop|0415 @@ -51222,7 +51219,7 @@ i32.const 1 local.get $0 local.get $13 - local.get $6 + local.get $4 i32.const 4400 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51243,7 +51240,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $11 i32.const 0 local.set $13 global.get $~lib/memory/__stack_pointer @@ -51255,61 +51252,61 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 4432 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.016 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4432 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 loop $for-loop|01827 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $11 + i32.gt_s if - local.get $0 - local.get $4 + local.get $3 + local.get $11 i32.add i32.load8_u - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $6 + local.get $11 + local.get $4 i32.const 4432 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.016 drop - local.get $0 + local.get $11 i32.const 1 i32.add - local.set $0 + local.set $11 br $for-loop|01827 end end @@ -51317,14 +51314,14 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0119 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 local.set $2 loop $for-loop|0420 @@ -51342,7 +51339,7 @@ i32.const 1 local.get $0 local.get $13 - local.get $6 + local.get $4 i32.const 4464 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51363,7 +51360,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $11 i32.const 0 local.set $13 global.get $~lib/memory/__stack_pointer @@ -51375,65 +51372,65 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4496 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4496 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $2 loop $for-loop|021 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $11 + i32.gt_s if - local.get $0 + local.get $11 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_s - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $6 + local.get $11 + local.get $4 i32.const 4496 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $0 + local.get $11 i32.const 1 i32.add - local.set $0 + local.set $11 br $for-loop|021 end end @@ -51441,14 +51438,14 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4528 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -51470,7 +51467,7 @@ i32.const 1 local.get $0 local.get $13 - local.get $6 + local.get $4 i32.const 4528 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51491,7 +51488,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $11 i32.const 0 local.set $13 global.get $~lib/memory/__stack_pointer @@ -51503,65 +51500,65 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4560 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $2 loop $for-loop|02328 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $11 + i32.gt_s if - local.get $0 + local.get $11 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $6 + local.get $11 + local.get $4 i32.const 4560 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $0 + local.get $11 i32.const 1 i32.add - local.set $0 + local.set $11 br $for-loop|02328 end end @@ -51569,14 +51566,14 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4592 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -51598,7 +51595,7 @@ i32.const 1 local.get $0 local.get $13 - local.get $6 + local.get $4 i32.const 4592 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51619,7 +51616,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $11 i32.const 0 local.set $13 global.get $~lib/memory/__stack_pointer @@ -51631,65 +51628,65 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4624 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4624 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 + local.set $2 loop $for-loop|02529 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $11 + i32.gt_s if - local.get $0 + local.get $11 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $6 + local.get $11 + local.get $4 i32.const 4624 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $0 + local.get $11 i32.const 1 i32.add - local.set $0 + local.set $11 br $for-loop|02529 end end @@ -51697,14 +51694,14 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -51726,7 +51723,7 @@ i32.const 1 local.get $0 local.get $13 - local.get $6 + local.get $4 i32.const 4656 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51747,7 +51744,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $11 i32.const 0 local.set $13 global.get $~lib/memory/__stack_pointer @@ -51759,65 +51756,65 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4688 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4688 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 + local.set $2 loop $for-loop|028 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $11 + i32.gt_s if - local.get $0 + local.get $11 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 local.get $0 - local.get $6 + local.get $11 + local.get $4 i32.const 4688 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $0 + local.get $11 i32.const 1 i32.add - local.set $0 + local.set $11 br $for-loop|028 end end @@ -51825,14 +51822,14 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4720 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4720 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -51854,7 +51851,7 @@ i32.const 1 local.get $0 local.get $13 - local.get $6 + local.get $4 i32.const 4720 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51875,9 +51872,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51887,65 +51884,65 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4752 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4752 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|030 local.get $0 - local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $11 - local.get $0 - local.get $4 + local.get $10 + local.get $13 + local.get $3 i32.const 4752 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|030 end end @@ -51953,45 +51950,45 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4784 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4784 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0431 local.get $0 - local.get $13 + local.get $9 i32.gt_s if - local.get $13 + local.get $9 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $11 - local.get $13 - local.get $4 + local.get $10 + local.get $9 + local.get $3 i32.const 4784 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|0431 end end @@ -52003,9 +52000,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52015,65 +52012,65 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4816 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4816 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|033 local.get $0 - local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $11 - local.get $0 - local.get $4 + local.get $10 + local.get $13 + local.get $3 i32.const 4816 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|033 end end @@ -52081,45 +52078,45 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4848 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4848 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0434 local.get $0 - local.get $13 + local.get $9 i32.gt_s if - local.get $13 + local.get $9 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $11 - local.get $13 - local.get $4 + local.get $10 + local.get $9 + local.get $3 i32.const 4848 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|0434 end end @@ -52131,9 +52128,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52143,47 +52140,47 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 6 call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4880 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|035 local.get $0 - local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add f32.load local.set $5 @@ -52191,17 +52188,17 @@ global.set $~argumentsLength i32.const 1 local.get $5 - local.get $0 - local.get $4 + local.get $13 + local.get $3 i32.const 4880 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|035 end end @@ -52209,24 +52206,24 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4912 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4912 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|0436 local.get $0 - local.get $13 + local.get $9 i32.gt_s if - local.get $13 + local.get $9 i32.const 2 i32.shl local.get $2 @@ -52237,17 +52234,17 @@ global.set $~argumentsLength i32.const 1 local.get $5 - local.get $13 - local.get $4 + local.get $9 + local.get $3 i32.const 4912 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|0436 end end @@ -52259,9 +52256,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52271,47 +52268,47 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 6 call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|038 local.get $0 - local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load local.set $7 @@ -52319,17 +52316,17 @@ global.set $~argumentsLength i32.const 1 local.get $7 - local.get $0 - local.get $4 + local.get $13 + local.get $3 i32.const 4944 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|038 end end @@ -52337,24 +52334,24 @@ end i32.eqz br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0439 local.get $0 - local.get $13 + local.get $9 i32.gt_s if - local.get $13 + local.get $9 i32.const 3 i32.shl local.get $2 @@ -52365,17 +52362,17 @@ global.set $~argumentsLength i32.const 1 local.get $7 - local.get $13 - local.get $4 + local.get $9 + local.get $3 i32.const 4976 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|0439 end end @@ -52387,9 +52384,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52430,33 +52427,33 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 loop $for-loop|040 - local.get $0 local.get $3 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 local.get $4 + local.get $8 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $6 i32.const 5008 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|040 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -52465,39 +52462,39 @@ i32.store offset=4 local.get $6 i32.load offset=4 - local.set $3 + local.set $4 local.get $6 i32.load offset=8 - local.set $2 + local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 loop $for-loop|0441 - local.get $2 - local.get $13 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $3 - local.get $13 + local.get $0 + local.get $4 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $6 i32.const 5040 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0441 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -52506,9 +52503,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52549,33 +52546,33 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 loop $for-loop|043 - local.get $0 local.get $3 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 local.get $4 + local.get $8 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $6 i32.const 5072 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|043 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -52584,39 +52581,39 @@ i32.store offset=4 local.get $6 i32.load offset=4 - local.set $3 + local.set $4 local.get $6 i32.load offset=8 - local.set $2 + local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 loop $for-loop|0444 - local.get $2 - local.get $13 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $3 - local.get $13 + local.get $0 + local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $6 i32.const 5104 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0444 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -52625,9 +52622,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52668,33 +52665,33 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.045 loop $for-loop|046 - local.get $0 local.get $3 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 local.get $4 + local.get $8 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $6 i32.const 5136 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.045 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|046 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -52703,39 +52700,39 @@ i32.store offset=4 local.get $6 i32.load offset=4 - local.set $3 + local.set $4 local.get $6 i32.load offset=8 - local.set $2 + local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0147 loop $for-loop|0448 - local.get $2 - local.get $13 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $3 - local.get $13 + local.get $0 + local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $6 i32.const 5168 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0147 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0448 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -52744,9 +52741,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52789,11 +52786,11 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 loop $for-loop|049 - local.get $0 local.get $3 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 1 i32.shl local.get $4 @@ -52801,23 +52798,23 @@ i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $6 i32.const 5200 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|049 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -52826,43 +52823,43 @@ i32.store offset=4 local.get $6 i32.load offset=4 - local.set $3 + local.set $4 local.get $6 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 loop $for-loop|0450 - local.get $2 - local.get $13 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $13 + local.get $0 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $6 i32.const 5232 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0450 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -52871,9 +52868,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52916,11 +52913,11 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 loop $for-loop|051 - local.get $0 local.get $3 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 1 i32.shl local.get $4 @@ -52928,23 +52925,23 @@ i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $6 i32.const 5264 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|051 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -52953,43 +52950,43 @@ i32.store offset=4 local.get $6 i32.load offset=4 - local.set $3 + local.set $4 local.get $6 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 loop $for-loop|0452 - local.get $2 - local.get $13 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $13 + local.get $0 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $6 i32.const 5296 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0452 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -52998,9 +52995,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53043,11 +53040,11 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 loop $for-loop|053 - local.get $0 local.get $3 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 2 i32.shl local.get $4 @@ -53055,23 +53052,23 @@ i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $6 i32.const 5328 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|053 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -53080,43 +53077,43 @@ i32.store offset=4 local.get $6 i32.load offset=4 - local.set $3 + local.set $4 local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 loop $for-loop|0454 - local.get $2 - local.get $13 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $13 + local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $6 i32.const 5360 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0454 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -53125,9 +53122,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53170,11 +53167,11 @@ local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 loop $for-loop|055 - local.get $0 local.get $3 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 2 i32.shl local.get $4 @@ -53182,23 +53179,23 @@ i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $6 i32.const 5392 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|055 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -53207,43 +53204,43 @@ i32.store offset=4 local.get $6 i32.load offset=4 - local.set $3 + local.set $4 local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $3 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 loop $for-loop|0456 - local.get $2 - local.get $13 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $13 + local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $6 i32.const 5424 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0456 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -53252,9 +53249,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53297,11 +53294,11 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 loop $for-loop|057 - local.get $0 local.get $2 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 3 i32.shl local.get $3 @@ -53309,23 +53306,23 @@ i64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $4 i32.const 5456 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|057 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -53334,43 +53331,43 @@ i32.store offset=4 local.get $4 i32.load offset=4 - local.set $2 + local.set $3 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 loop $for-loop|0458 local.get $0 - local.get $13 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $13 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $4 i32.const 5488 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0458 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -53379,9 +53376,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53424,11 +53421,11 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 loop $for-loop|060 - local.get $0 local.get $2 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 3 i32.shl local.get $3 @@ -53436,23 +53433,23 @@ i64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $4 i32.const 5520 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|060 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -53461,43 +53458,43 @@ i32.store offset=4 local.get $4 i32.load offset=4 - local.set $2 + local.set $3 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 loop $for-loop|0461 local.get $0 - local.get $13 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $13 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $4 i32.const 5552 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0461 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -53506,9 +53503,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53551,11 +53548,11 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 loop $for-loop|062 - local.get $0 local.get $2 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 2 i32.shl local.get $3 @@ -53563,23 +53560,23 @@ f32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $4 i32.const 5584 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|062 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -53588,43 +53585,43 @@ i32.store offset=4 local.get $4 i32.load offset=4 - local.set $2 + local.set $3 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 loop $for-loop|0463 local.get $0 - local.get $13 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $13 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $4 i32.const 5616 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0463 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -53633,9 +53630,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $8 i32.const 0 - local.set $13 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53678,11 +53675,11 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 loop $for-loop|065 - local.get $0 local.get $2 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 3 i32.shl local.get $3 @@ -53690,23 +53687,23 @@ f64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $8 local.get $4 i32.const 5648 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|065 end end i32.const -1 - local.set $0 + local.set $8 end - local.get $0 + local.get $8 i32.const 1 i32.ne br_if $folding-inner25 @@ -53715,43 +53712,43 @@ i32.store offset=4 local.get $4 i32.load offset=4 - local.set $2 + local.set $3 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 loop $for-loop|0466 local.get $0 - local.get $13 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $13 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $13 + local.get $0 local.get $4 i32.const 5680 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $13 + local.get $0 i32.const 1 i32.add - local.set $13 + local.set $0 br $for-loop|0466 end end i32.const -1 - local.set $13 + local.set $0 end - local.get $13 + local.get $0 i32.const -1 i32.ne br_if $folding-inner26 @@ -55133,9 +55130,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55145,62 +55142,62 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6416 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6416 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 loop $for-loop|094 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $13 + i32.gt_s if - local.get $0 - local.get $4 + local.get $3 + local.get $13 i32.add i32.load8_s - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $6 + local.get $13 + local.get $4 i32.const 6416 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|094 end end @@ -55208,23 +55205,23 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 local.set $2 loop $for-loop|0495 local.get $2 - local.get $13 + local.get $9 i32.gt_s if local.get $3 - local.get $13 + local.get $9 i32.add i32.load8_s local.set $0 @@ -55232,18 +55229,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $6 + local.get $9 + local.get $4 i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|0495 end end @@ -55255,9 +55252,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55267,62 +55264,62 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6480 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6480 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 loop $for-loop|097 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $13 + i32.gt_s if - local.get $0 - local.get $4 + local.get $3 + local.get $13 i32.add i32.load8_u - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $6 + local.get $13 + local.get $4 i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|097 end end @@ -55330,23 +55327,23 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 6512 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6512 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 local.set $2 loop $for-loop|0498 local.get $2 - local.get $13 + local.get $9 i32.gt_s if local.get $3 - local.get $13 + local.get $9 i32.add i32.load8_u local.set $0 @@ -55354,18 +55351,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $6 + local.get $9 + local.get $4 i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|0498 end end @@ -55377,9 +55374,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55389,62 +55386,62 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 6544 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.099 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6544 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 loop $for-loop|0100 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $13 + i32.gt_s if - local.get $0 - local.get $4 + local.get $3 + local.get $13 i32.add i32.load8_u - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $6 + local.get $13 + local.get $4 i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.099 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|0100 end end @@ -55452,23 +55449,23 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 6576 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01101 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6576 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 local.set $2 loop $for-loop|04102 local.get $2 - local.get $13 + local.get $9 i32.gt_s if local.get $3 - local.get $13 + local.get $9 i32.add i32.load8_u local.set $0 @@ -55476,18 +55473,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $6 + local.get $9 + local.get $4 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01101 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|04102 end end @@ -55499,9 +55496,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55511,66 +55508,66 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6608 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6608 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $2 loop $for-loop|0103 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_s - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $6 + local.get $13 + local.get $4 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|0103 end end @@ -55578,24 +55575,24 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 6640 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6640 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 loop $for-loop|04104 local.get $2 - local.get $13 + local.get $9 i32.gt_s if - local.get $13 + local.get $9 i32.const 1 i32.shl local.get $3 @@ -55606,18 +55603,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $6 + local.get $9 + local.get $4 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|04104 end end @@ -55629,9 +55626,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55641,66 +55638,66 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6672 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6672 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $2 loop $for-loop|0105 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $6 + local.get $13 + local.get $4 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|0105 end end @@ -55708,24 +55705,24 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 6704 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6704 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 loop $for-loop|04106 local.get $2 - local.get $13 + local.get $9 i32.gt_s if - local.get $13 + local.get $9 i32.const 1 i32.shl local.get $3 @@ -55736,18 +55733,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $6 + local.get $9 + local.get $4 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|04106 end end @@ -55759,9 +55756,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55771,66 +55768,66 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6736 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6736 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 + local.set $2 loop $for-loop|0107 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $6 + local.get $13 + local.get $4 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|0107 end end @@ -55838,24 +55835,24 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 6768 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6768 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 loop $for-loop|04108 local.get $2 - local.get $13 + local.get $9 i32.gt_s if - local.get $13 + local.get $9 i32.const 2 i32.shl local.get $3 @@ -55866,18 +55863,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $6 + local.get $9 + local.get $4 i32.const 6768 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|04108 end end @@ -55889,9 +55886,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - i32.const 0 local.set $13 + i32.const 0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55901,66 +55898,66 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6800 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6800 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 + local.set $2 loop $for-loop|0109 - local.get $0 - local.get $3 - i32.lt_s + local.get $2 + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 local.get $0 - local.get $6 + local.get $13 + local.get $4 i32.const 6800 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $0 + local.get $13 i32.const 1 i32.add - local.set $0 + local.set $13 br $for-loop|0109 end end @@ -55968,24 +55965,24 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 6832 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6832 - i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 local.set $3 - local.get $6 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 loop $for-loop|04110 local.get $2 - local.get $13 + local.get $9 i32.gt_s if - local.get $13 + local.get $9 i32.const 2 i32.shl local.get $3 @@ -55996,18 +55993,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $6 + local.get $9 + local.get $4 i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 drop - local.get $13 + local.get $9 i32.const 1 i32.add - local.set $13 + local.set $9 br $for-loop|04110 end end @@ -56019,9 +56016,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $9 i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56031,66 +56028,66 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6864 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6864 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|0112 local.get $0 - local.get $2 - i32.lt_s + local.get $9 + i32.gt_s if - local.get $0 + local.get $9 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $11 - local.get $0 - local.get $4 + local.get $10 + local.get $9 + local.get $3 i32.const 6864 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|0112 end end @@ -56098,46 +56095,46 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 6896 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6896 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|04113 local.get $0 - local.get $13 + local.get $8 i32.gt_s if - local.get $13 + local.get $8 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $11 - local.get $13 - local.get $4 + local.get $10 + local.get $8 + local.get $3 i32.const 6896 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 drop - local.get $13 + local.get $8 i32.const 1 i32.add - local.set $13 + local.set $8 br $for-loop|04113 end end @@ -56149,9 +56146,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $9 i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56161,66 +56158,66 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6928 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6928 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|0114 local.get $0 - local.get $2 - i32.lt_s + local.get $9 + i32.gt_s if - local.get $0 + local.get $9 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $11 - local.get $0 - local.get $4 + local.get $10 + local.get $9 + local.get $3 i32.const 6928 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|0114 end end @@ -56228,46 +56225,46 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 6960 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6960 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|04115 local.get $0 - local.get $13 + local.get $8 i32.gt_s if - local.get $13 + local.get $8 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $11 + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $11 - local.get $13 - local.get $4 + local.get $10 + local.get $8 + local.get $3 i32.const 6960 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 drop - local.get $13 + local.get $8 i32.const 1 i32.add - local.set $13 + local.set $8 br $for-loop|04115 end end @@ -56279,9 +56276,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $9 i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56291,47 +56288,47 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 6 call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 6992 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 6992 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|0116 local.get $0 - local.get $2 - i32.lt_s + local.get $9 + i32.gt_s if - local.get $0 + local.get $9 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add f32.load local.set $5 @@ -56339,18 +56336,18 @@ global.set $~argumentsLength i32.const 0 local.get $5 - local.get $0 - local.get $4 + local.get $9 + local.get $3 i32.const 6992 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|0116 end end @@ -56358,24 +56355,24 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 7024 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|04117 local.get $0 - local.get $13 + local.get $8 i32.gt_s if - local.get $13 + local.get $8 i32.const 2 i32.shl local.get $2 @@ -56386,18 +56383,18 @@ global.set $~argumentsLength i32.const 0 local.get $5 - local.get $13 - local.get $4 + local.get $8 + local.get $3 i32.const 7024 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 drop - local.get $13 + local.get $8 i32.const 1 i32.add - local.set $13 + local.set $8 br $for-loop|04117 end end @@ -56409,9 +56406,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $9 i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56421,47 +56418,47 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 6 call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7056 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 7056 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $0 loop $for-loop|0118 local.get $0 - local.get $2 - i32.lt_s + local.get $9 + i32.gt_s if - local.get $0 + local.get $9 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load local.set $7 @@ -56469,18 +56466,18 @@ global.set $~argumentsLength i32.const 0 local.get $7 - local.get $0 - local.get $4 + local.get $9 + local.get $3 i32.const 7056 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|0118 end end @@ -56488,24 +56485,24 @@ end i32.eqz br_if $folding-inner29 + global.get $~lib/memory/__stack_pointer + i32.const 7088 + i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 7088 - i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|04119 local.get $0 - local.get $13 + local.get $8 i32.gt_s if - local.get $13 + local.get $8 i32.const 3 i32.shl local.get $2 @@ -56516,18 +56513,18 @@ global.set $~argumentsLength i32.const 0 local.get $7 - local.get $13 - local.get $4 + local.get $8 + local.get $3 i32.const 7088 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 drop - local.get $13 + local.get $8 i32.const 1 i32.add - local.set $13 + local.set $8 br $for-loop|04119 end end @@ -56603,24 +56600,24 @@ local.set $2 loop $for-loop|0116120 local.get $2 - local.get $37 + local.get $41 i32.gt_s if local.get $3 - local.get $37 + local.get $41 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $37 + local.get $41 local.get $4 i32.const 7200 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $37 + local.get $41 i32.const 1 i32.add - local.set $37 + local.set $41 br $for-loop|0116120 end end @@ -56700,24 +56697,24 @@ local.set $2 loop $for-loop|0121 local.get $2 - local.get $38 + local.get $42 i32.gt_s if local.get $3 - local.get $38 + local.get $42 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $38 + local.get $42 local.get $4 i32.const 7232 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $38 + local.get $42 i32.const 1 i32.add - local.set $38 + local.set $42 br $for-loop|0121 end end @@ -56797,24 +56794,24 @@ local.set $2 loop $for-loop|0128 local.get $2 - local.get $39 + local.get $43 i32.gt_s if local.get $3 - local.get $39 + local.get $43 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $39 + local.get $43 local.get $4 i32.const 7264 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $39 + local.get $43 i32.const 1 i32.add - local.set $39 + local.set $43 br $for-loop|0128 end end @@ -56893,10 +56890,10 @@ local.set $2 loop $for-loop|0133 local.get $2 - local.get $40 + local.get $44 i32.gt_s if - local.get $40 + local.get $44 i32.const 1 i32.shl local.get $3 @@ -56904,15 +56901,15 @@ i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $40 + local.get $44 local.get $4 i32.const 7296 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $40 + local.get $44 i32.const 1 i32.add - local.set $40 + local.set $44 br $for-loop|0133 end end @@ -56994,10 +56991,10 @@ local.set $2 loop $for-loop|0138 local.get $2 - local.get $41 + local.get $45 i32.gt_s if - local.get $41 + local.get $45 i32.const 1 i32.shl local.get $3 @@ -57005,15 +57002,15 @@ i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $41 + local.get $45 local.get $4 i32.const 7328 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $41 + local.get $45 i32.const 1 i32.add - local.set $41 + local.set $45 br $for-loop|0138 end end @@ -57089,10 +57086,10 @@ local.set $2 loop $for-loop|0143 local.get $2 - local.get $42 + local.get $46 i32.gt_s if - local.get $42 + local.get $46 i32.const 2 i32.shl local.get $3 @@ -57100,15 +57097,15 @@ i32.load i32.const 3 global.set $~argumentsLength - local.get $42 + local.get $46 local.get $4 i32.const 7360 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $42 + local.get $46 i32.const 1 i32.add - local.set $42 + local.set $46 br $for-loop|0143 end end @@ -57184,10 +57181,10 @@ local.set $2 loop $for-loop|0148 local.get $2 - local.get $43 + local.get $47 i32.gt_s if - local.get $43 + local.get $47 i32.const 2 i32.shl local.get $3 @@ -57195,15 +57192,15 @@ i32.load i32.const 3 global.set $~argumentsLength - local.get $43 + local.get $47 local.get $4 i32.const 7392 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $43 + local.get $47 i32.const 1 i32.add - local.set $43 + local.set $47 br $for-loop|0148 end end @@ -57282,10 +57279,10 @@ local.set $0 loop $for-loop|0153 local.get $0 - local.get $44 + local.get $48 i32.gt_s if - local.get $44 + local.get $48 i32.const 3 i32.shl local.get $2 @@ -57293,15 +57290,15 @@ i64.load i32.const 3 global.set $~argumentsLength - local.get $44 + local.get $48 local.get $3 i32.const 7424 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $44 + local.get $48 i32.const 1 i32.add - local.set $44 + local.set $48 br $for-loop|0153 end end @@ -57380,10 +57377,10 @@ local.set $0 loop $for-loop|0158 local.get $0 - local.get $45 + local.get $49 i32.gt_s if - local.get $45 + local.get $49 i32.const 3 i32.shl local.get $2 @@ -57391,15 +57388,15 @@ i64.load i32.const 3 global.set $~argumentsLength - local.get $45 + local.get $49 local.get $3 i32.const 7456 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $45 + local.get $49 i32.const 1 i32.add - local.set $45 + local.set $49 br $for-loop|0158 end end @@ -57478,10 +57475,10 @@ local.set $0 loop $for-loop|0163 local.get $0 - local.get $46 + local.get $50 i32.gt_s if - local.get $46 + local.get $50 i32.const 2 i32.shl local.get $2 @@ -57489,15 +57486,15 @@ f32.load i32.const 3 global.set $~argumentsLength - local.get $46 + local.get $50 local.get $3 i32.const 7488 i32.load call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $46 + local.get $50 i32.const 1 i32.add - local.set $46 + local.set $50 br $for-loop|0163 end end @@ -57576,10 +57573,10 @@ local.set $0 loop $for-loop|0168 local.get $0 - local.get $47 + local.get $51 i32.gt_s if - local.get $47 + local.get $51 i32.const 3 i32.shl local.get $2 @@ -57587,15 +57584,15 @@ f64.load i32.const 3 global.set $~argumentsLength - local.get $47 + local.get $51 local.get $3 i32.const 7520 i32.load call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $47 + local.get $51 i32.const 1 i32.add - local.set $47 + local.set $51 br $for-loop|0168 end end @@ -57608,7 +57605,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57618,53 +57615,53 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i64.const 0 i64.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.store offset=16 - local.get $2 + local.get $0 i32.const 7616 i32.store - local.get $2 + local.get $0 i32.const 7628 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Int8Array#constructor local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $0 i32.store offset=8 loop $for-loop|0122 - local.get $0 - local.get $4 - i32.lt_s + local.get $3 + local.get $9 + i32.gt_s if local.get $2 - local.get $0 + local.get $9 i32.const 7616 - local.get $0 + local.get $9 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $3 local.get $0 + local.get $9 i32.const 7616 - local.get $0 + local.get $9 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|0122 end end @@ -57674,34 +57671,34 @@ i32.load offset=8 call $~lib/util/bytes/REVERSE i32.const 0 - local.set $0 + local.set $9 loop $for-loop|1 - local.get $0 - local.get $4 - i32.lt_s + local.get $3 + local.get $9 + i32.gt_s if local.get $2 - local.get $0 + local.get $9 call $~lib/typedarray/Int8Array#__get i32.const 7616 - local.get $4 + local.get $3 i32.const 1 i32.sub - local.get $0 + local.get $9 i32.sub call $~lib/array/Array#__get i32.extend8_s i32.ne br_if $folding-inner31 - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 4 i32.const 8 call $~lib/typedarray/Int8Array#subarray @@ -57745,7 +57742,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57755,55 +57752,55 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i64.const 0 i64.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.store offset=16 - local.get $2 + local.get $0 i32.const 7616 i32.store - local.get $2 + local.get $0 i32.const 7628 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Uint8Array#constructor local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $0 i32.store offset=8 loop $for-loop|0123 - local.get $0 - local.get $4 - i32.lt_s + local.get $3 + local.get $9 + i32.gt_s if local.get $2 - local.get $0 + local.get $9 i32.const 7616 - local.get $0 + local.get $9 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $3 local.get $0 + local.get $9 i32.const 7616 - local.get $0 + local.get $9 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|0123 end end @@ -57813,35 +57810,35 @@ i32.load offset=8 call $~lib/util/bytes/REVERSE i32.const 0 - local.set $0 + local.set $9 loop $for-loop|1124 - local.get $0 - local.get $4 - i32.lt_s + local.get $3 + local.get $9 + i32.gt_s if local.get $2 - local.get $0 + local.get $9 call $~lib/typedarray/Uint8Array#__get i32.const 7616 - local.get $4 + local.get $3 i32.const 1 i32.sub - local.get $0 + local.get $9 i32.sub call $~lib/array/Array#__get i32.const 255 i32.and i32.ne br_if $folding-inner31 - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|1124 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 8 call $~lib/typedarray/Uint8Array#subarray local.set $0 @@ -57884,7 +57881,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57894,55 +57891,55 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i64.const 0 i64.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.store offset=16 - local.get $2 + local.get $0 i32.const 7616 i32.store - local.get $2 + local.get $0 i32.const 7628 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $0 i32.store offset=8 loop $for-loop|0125 - local.get $0 - local.get $4 - i32.lt_s + local.get $3 + local.get $9 + i32.gt_s if local.get $2 - local.get $0 + local.get $9 i32.const 7616 - local.get $0 + local.get $9 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 local.get $0 + local.get $9 i32.const 7616 - local.get $0 + local.get $9 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|0125 end end @@ -57952,35 +57949,35 @@ i32.load offset=8 call $~lib/util/bytes/REVERSE i32.const 0 - local.set $0 + local.set $9 loop $for-loop|1126 - local.get $0 - local.get $4 - i32.lt_s + local.get $3 + local.get $9 + i32.gt_s if local.get $2 - local.get $0 + local.get $9 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7616 - local.get $4 + local.get $3 i32.const 1 i32.sub - local.get $0 + local.get $9 i32.sub call $~lib/array/Array#__get i32.const 255 i32.and i32.ne br_if $folding-inner31 - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|1126 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 8 call $~lib/typedarray/Uint8ClampedArray#subarray local.set $0 @@ -58023,7 +58020,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58033,53 +58030,53 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i64.const 0 i64.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.store offset=16 - local.get $2 + local.get $0 i32.const 7616 i32.store - local.get $2 + local.get $0 i32.const 7628 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Int16Array#constructor local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $0 i32.store offset=8 loop $for-loop|0127 - local.get $0 - local.get $4 - i32.lt_s + local.get $3 + local.get $9 + i32.gt_s if local.get $2 - local.get $0 + local.get $9 i32.const 7616 - local.get $0 + local.get $9 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $3 local.get $0 + local.get $9 i32.const 7616 - local.get $0 + local.get $9 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|0127 end end @@ -58087,34 +58084,34 @@ call $~lib/typedarray/Int16Array#reverse drop i32.const 0 - local.set $0 + local.set $9 loop $for-loop|1128 - local.get $0 - local.get $4 - i32.lt_s + local.get $3 + local.get $9 + i32.gt_s if local.get $2 - local.get $0 + local.get $9 call $~lib/typedarray/Int16Array#__get i32.const 7616 - local.get $4 + local.get $3 i32.const 1 i32.sub - local.get $0 + local.get $9 i32.sub call $~lib/array/Array#__get i32.extend16_s i32.ne br_if $folding-inner31 - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|1128 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 8 call $~lib/typedarray/Int16Array#subarray local.set $0 @@ -58154,7 +58151,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58164,55 +58161,55 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i64.const 0 i64.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.store offset=16 - local.get $2 + local.get $0 i32.const 7616 i32.store - local.get $2 + local.get $0 i32.const 7628 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Uint16Array#constructor local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $0 i32.store offset=8 loop $for-loop|0129 - local.get $0 - local.get $4 - i32.lt_s + local.get $3 + local.get $9 + i32.gt_s if local.get $2 - local.get $0 + local.get $9 i32.const 7616 - local.get $0 + local.get $9 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $3 local.get $0 + local.get $9 i32.const 7616 - local.get $0 + local.get $9 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|0129 end end @@ -58220,35 +58217,35 @@ call $~lib/typedarray/Int16Array#reverse drop i32.const 0 - local.set $0 + local.set $9 loop $for-loop|1130 - local.get $0 - local.get $4 - i32.lt_s + local.get $3 + local.get $9 + i32.gt_s if local.get $2 - local.get $0 + local.get $9 call $~lib/typedarray/Uint16Array#__get i32.const 7616 - local.get $4 + local.get $3 i32.const 1 i32.sub - local.get $0 + local.get $9 i32.sub call $~lib/array/Array#__get i32.const 65535 i32.and i32.ne br_if $folding-inner31 - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 + local.set $9 br $for-loop|1130 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 8 call $~lib/typedarray/Uint16Array#subarray local.set $0 @@ -58311,27 +58308,27 @@ local.get $0 i32.const 7628 i32.load - local.tee $10 - call $~lib/typedarray/Int32Array#constructor local.tee $9 + call $~lib/typedarray/Int32Array#constructor + local.tee $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 call $~lib/typedarray/Int32Array#constructor - local.tee $8 + local.tee $6 i32.store offset=8 loop $for-loop|0171 local.get $1 - local.get $10 + local.get $9 i32.lt_s if - local.get $9 + local.get $8 local.get $1 i32.const 7616 local.get $1 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $8 + local.get $6 local.get $1 i32.const 7616 local.get $1 @@ -58345,57 +58342,57 @@ end end i32.const 0 - local.set $0 - local.get $9 + local.set $15 + local.get $8 i32.load offset=4 - local.set $6 - local.get $9 + local.set $4 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.const 1 i32.gt_u if - local.get $1 + local.get $0 i32.const 1 i32.shr_u - local.set $4 - local.get $1 + local.set $3 + local.get $0 i32.const 1 i32.sub - local.set $3 + local.set $2 loop $while-continue|0 - local.get $0 - local.get $4 - i32.lt_u + local.get $3 + local.get $15 + i32.gt_u if - local.get $0 + local.get $15 i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add - local.tee $1 + local.tee $0 i32.load - local.set $2 - local.get $1 - local.get $3 + local.set $1 local.get $0 + local.get $2 + local.get $15 i32.sub i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add - local.tee $1 + local.tee $0 i32.load i32.store + local.get $0 local.get $1 - local.get $2 i32.store - local.get $0 + local.get $15 i32.const 1 i32.add - local.set $0 + local.set $15 br $while-continue|0 end end @@ -58404,14 +58401,14 @@ local.set $1 loop $for-loop|1131 local.get $1 - local.get $10 + local.get $9 i32.lt_s if - local.get $9 + local.get $8 local.get $1 call $~lib/typedarray/Int32Array#__get i32.const 7616 - local.get $10 + local.get $9 i32.const 1 i32.sub local.get $1 @@ -58427,20 +58424,20 @@ end end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.const 4 i32.const 8 call $~lib/typedarray/Int32Array#subarray - local.set $8 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=12 i32.const 0 - local.set $1 - local.get $8 + local.set $15 + local.get $6 i32.load offset=4 - local.set $6 - local.get $8 + local.set $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u @@ -58451,67 +58448,67 @@ local.get $0 i32.const 1 i32.shr_u - local.set $4 + local.set $3 local.get $0 i32.const 1 i32.sub - local.set $3 + local.set $2 loop $while-continue|0133 - local.get $1 - local.get $4 - i32.lt_u + local.get $3 + local.get $15 + i32.gt_u if - local.get $1 + local.get $15 i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add local.tee $0 i32.load - local.set $2 + local.set $1 local.get $0 - local.get $3 - local.get $1 + local.get $2 + local.get $15 i32.sub i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add local.tee $0 i32.load i32.store local.get $0 - local.get $2 - i32.store local.get $1 + i32.store + local.get $15 i32.const 1 i32.add - local.set $1 + local.set $15 br $while-continue|0133 end end end - local.get $8 + local.get $6 i32.store offset=16 - local.get $8 + local.get $6 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 8 i32.ne br_if $folding-inner32 - local.get $8 + local.get $6 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 7 i32.ne br_if $folding-inner33 - local.get $8 + local.get $6 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 6 i32.ne br_if $folding-inner34 - local.get $8 + local.get $6 i32.const 3 call $~lib/typedarray/Int32Array#__get i32.const 5 @@ -58545,135 +58542,135 @@ local.get $0 i32.const 7628 i32.load - local.tee $10 - call $~lib/typedarray/Uint32Array#constructor local.tee $9 + call $~lib/typedarray/Uint32Array#constructor + local.tee $8 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 call $~lib/typedarray/Uint32Array#constructor - local.tee $8 + local.tee $6 i32.store offset=8 loop $for-loop|021134 - local.get $10 - local.get $16 + local.get $9 + local.get $19 i32.gt_s if - local.get $9 - local.get $16 + local.get $8 + local.get $19 i32.const 7616 - local.get $16 + local.get $19 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $8 - local.get $16 + local.get $6 + local.get $19 i32.const 7616 - local.get $16 + local.get $19 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $16 + local.get $19 i32.const 1 i32.add - local.set $16 + local.set $19 br $for-loop|021134 end end i32.const 0 - local.set $0 - local.get $9 + local.set $15 + local.get $8 i32.load offset=4 - local.set $6 - local.get $9 + local.set $4 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.const 1 i32.gt_u if - local.get $1 + local.get $0 i32.const 1 i32.shr_u - local.set $4 - local.get $1 + local.set $3 + local.get $0 i32.const 1 i32.sub - local.set $3 + local.set $2 loop $while-continue|0136 - local.get $0 - local.get $4 - i32.lt_u + local.get $3 + local.get $15 + i32.gt_u if - local.get $0 + local.get $15 i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add - local.tee $1 + local.tee $0 i32.load - local.set $2 - local.get $1 - local.get $3 + local.set $1 local.get $0 + local.get $2 + local.get $15 i32.sub i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add - local.tee $1 + local.tee $0 i32.load i32.store + local.get $0 local.get $1 - local.get $2 i32.store - local.get $0 + local.get $15 i32.const 1 i32.add - local.set $0 + local.set $15 br $while-continue|0136 end end end i32.const 0 - local.set $16 + local.set $19 loop $for-loop|124 - local.get $10 - local.get $16 + local.get $9 + local.get $19 i32.gt_s if - local.get $9 - local.get $16 + local.get $8 + local.get $19 call $~lib/typedarray/Uint32Array#__get i32.const 7616 - local.get $10 + local.get $9 i32.const 1 i32.sub - local.get $16 + local.get $19 i32.sub call $~lib/array/Array#__get i32.ne br_if $folding-inner31 - local.get $16 + local.get $19 i32.const 1 i32.add - local.set $16 + local.set $19 br $for-loop|124 end end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.const 8 call $~lib/typedarray/Uint32Array#subarray - local.set $8 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.store offset=12 i32.const 0 - local.set $1 - local.get $8 + local.set $11 + local.get $6 i32.load offset=4 - local.set $6 - local.get $8 + local.set $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u @@ -58684,67 +58681,67 @@ local.get $0 i32.const 1 i32.shr_u - local.set $4 + local.set $3 local.get $0 i32.const 1 i32.sub - local.set $3 + local.set $2 loop $while-continue|0138 - local.get $1 - local.get $4 - i32.lt_u + local.get $3 + local.get $11 + i32.gt_u if - local.get $1 + local.get $11 i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add local.tee $0 i32.load - local.set $2 + local.set $1 local.get $0 - local.get $3 - local.get $1 + local.get $2 + local.get $11 i32.sub i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add local.tee $0 i32.load i32.store local.get $0 - local.get $2 - i32.store local.get $1 + i32.store + local.get $11 i32.const 1 i32.add - local.set $1 + local.set $11 br $while-continue|0138 end end end - local.get $8 + local.get $6 i32.store offset=16 - local.get $8 + local.get $6 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 8 i32.ne br_if $folding-inner32 - local.get $8 + local.get $6 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 7 i32.ne br_if $folding-inner33 - local.get $8 + local.get $6 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 6 i32.ne br_if $folding-inner34 - local.get $8 + local.get $6 i32.const 3 call $~lib/typedarray/Uint32Array#__get i32.const 5 @@ -58844,11 +58841,11 @@ local.set $0 loop $while-continue|0140 local.get $1 - local.get $51 + local.get $55 i32.gt_s if i32.const 1 - local.get $51 + local.get $55 i32.const 3 i32.shl local.get $0 @@ -58863,10 +58860,10 @@ i32.or br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $51 + local.get $55 i32.const 1 i32.add - local.set $51 + local.set $55 br $while-continue|0140 end end @@ -58956,11 +58953,11 @@ local.set $0 loop $while-continue|029 local.get $1 - local.get $52 + local.get $56 i32.gt_s if i32.const 1 - local.get $52 + local.get $56 i32.const 2 i32.shl local.get $0 @@ -58975,10 +58972,10 @@ i32.or br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $52 + local.get $56 i32.const 1 i32.add - local.set $52 + local.set $56 br $while-continue|029 end end @@ -59067,18 +59064,19 @@ i32.store local.get $1 call $~lib/typedarray/Int8Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59313,18 +59311,19 @@ i32.store local.get $1 call $~lib/typedarray/Int16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59407,18 +59406,19 @@ i32.store local.get $1 call $~lib/typedarray/Uint16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59501,18 +59501,19 @@ i32.store local.get $1 call $~lib/typedarray/Int32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59595,18 +59596,19 @@ i32.store local.get $1 call $~lib/typedarray/Uint32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59688,113 +59690,115 @@ i32.const 9584 i32.store local.get $1 - call $~lib/typedarray/Int64Array#join - local.set $0 + call $~lib/typedarray/Int64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $1 + i32.store offset=4 + local.get $0 + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Uint64Array#join + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $0 i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 9584 - i32.store - local.get $1 - call $~lib/typedarray/Uint64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59877,18 +59881,19 @@ i32.store local.get $1 call $~lib/typedarray/Float32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 10800 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10800 call $~lib/string/String.__eq i32.eqz @@ -59971,18 +59976,19 @@ i32.store local.get $1 call $~lib/typedarray/Float64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 10800 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10800 call $~lib/string/String.__eq i32.eqz @@ -60067,20 +60073,20 @@ i32.store offset=4 loop $for-loop|035142 local.get $6 - local.get $21 + local.get $20 i32.gt_s if local.get $4 - local.get $21 + local.get $20 i32.const 10928 - local.get $21 + local.get $20 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $21 + local.get $20 i32.const 1 i32.add - local.set $21 + local.set $20 br $for-loop|035142 end end @@ -60098,9 +60104,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $4 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60153,24 +60159,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $21 + local.set $20 loop $for-loop|139 local.get $6 - local.get $21 + local.get $20 i32.gt_s if local.get $4 - local.get $21 + local.get $20 call $~lib/typedarray/Int8Array#__get local.get $0 - local.get $21 + local.get $20 call $~lib/typedarray/Int8Array#__get i32.ne - br_if $folding-inner17 - local.get $21 + br_if $folding-inner18 + local.get $20 i32.const 1 i32.add - local.set $21 + local.set $20 br $for-loop|139 end end @@ -60208,21 +60214,21 @@ i32.store offset=4 loop $for-loop|044 local.get $3 - local.get $22 + local.get $21 i32.gt_s if local.get $2 - local.get $22 + local.get $21 i32.const 10928 - local.get $22 + local.get $21 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $22 + local.get $21 i32.const 1 i32.add - local.set $22 + local.set $21 br $for-loop|044 end end @@ -60240,9 +60246,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $2 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $0 @@ -60256,24 +60262,24 @@ local.tee $0 i32.store offset=16 i32.const 0 - local.set $22 + local.set $21 loop $for-loop|149 local.get $3 - local.get $22 + local.get $21 i32.gt_s if local.get $2 - local.get $22 + local.get $21 call $~lib/typedarray/Uint8Array#__get local.get $0 - local.get $22 + local.get $21 call $~lib/typedarray/Uint8Array#__get i32.ne - br_if $folding-inner17 - local.get $22 + br_if $folding-inner18 + local.get $21 i32.const 1 i32.add - local.set $22 + local.set $21 br $for-loop|149 end end @@ -60311,21 +60317,21 @@ i32.store offset=4 loop $for-loop|054 local.get $6 - local.get $23 + local.get $22 i32.gt_s if local.get $4 - local.get $23 + local.get $22 i32.const 10928 - local.get $23 + local.get $22 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $23 + local.get $22 i32.const 1 i32.add - local.set $23 + local.set $22 br $for-loop|054 end end @@ -60343,9 +60349,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $4 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60398,24 +60404,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $23 + local.set $22 loop $for-loop|159 local.get $6 - local.get $23 + local.get $22 i32.gt_s if local.get $4 - local.get $23 + local.get $22 call $~lib/typedarray/Uint8ClampedArray#__get local.get $0 - local.get $23 + local.get $22 call $~lib/typedarray/Uint8ClampedArray#__get i32.ne - br_if $folding-inner17 - local.get $23 + br_if $folding-inner18 + local.get $22 i32.const 1 i32.add - local.set $23 + local.set $22 br $for-loop|159 end end @@ -60453,20 +60459,20 @@ i32.store offset=4 loop $for-loop|064200 local.get $6 - local.get $24 + local.get $23 i32.gt_s if local.get $4 - local.get $24 + local.get $23 i32.const 10928 - local.get $24 + local.get $23 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $24 + local.get $23 i32.const 1 i32.add - local.set $24 + local.set $23 br $for-loop|064200 end end @@ -60484,9 +60490,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $4 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60512,7 +60518,7 @@ local.tee $1 i32.const 1 i32.and - br_if $folding-inner18 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 @@ -60541,24 +60547,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $24 + local.set $23 loop $for-loop|169 local.get $6 - local.get $24 + local.get $23 i32.gt_s if local.get $4 - local.get $24 + local.get $23 call $~lib/typedarray/Int16Array#__get local.get $0 - local.get $24 + local.get $23 call $~lib/typedarray/Int16Array#__get i32.ne - br_if $folding-inner17 - local.get $24 + br_if $folding-inner18 + local.get $23 i32.const 1 i32.add - local.set $24 + local.set $23 br $for-loop|169 end end @@ -60596,21 +60602,21 @@ i32.store offset=4 loop $for-loop|074 local.get $6 - local.get $25 + local.get $24 i32.gt_s if local.get $4 - local.get $25 + local.get $24 i32.const 10928 - local.get $25 + local.get $24 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $25 + local.get $24 i32.const 1 i32.add - local.set $25 + local.set $24 br $for-loop|074 end end @@ -60628,9 +60634,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $4 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60656,7 +60662,7 @@ local.tee $1 i32.const 1 i32.and - br_if $folding-inner18 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 @@ -60685,24 +60691,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $25 + local.set $24 loop $for-loop|179 local.get $6 - local.get $25 + local.get $24 i32.gt_s if local.get $4 - local.get $25 + local.get $24 call $~lib/typedarray/Uint16Array#__get local.get $0 - local.get $25 + local.get $24 call $~lib/typedarray/Uint16Array#__get i32.ne - br_if $folding-inner17 - local.get $25 + br_if $folding-inner18 + local.get $24 i32.const 1 i32.add - local.set $25 + local.set $24 br $for-loop|179 end end @@ -60740,19 +60746,19 @@ i32.store offset=4 loop $for-loop|084146 local.get $6 - local.get $26 + local.get $25 i32.gt_s if local.get $4 - local.get $26 + local.get $25 i32.const 10928 - local.get $26 + local.get $25 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $26 + local.get $25 i32.const 1 i32.add - local.set $26 + local.set $25 br $for-loop|084146 end end @@ -60770,9 +60776,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $4 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60798,7 +60804,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner18 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 @@ -60827,24 +60833,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $26 + local.set $25 loop $for-loop|189 local.get $6 - local.get $26 + local.get $25 i32.gt_s if local.get $4 - local.get $26 + local.get $25 call $~lib/typedarray/Int32Array#__get local.get $0 - local.get $26 + local.get $25 call $~lib/typedarray/Int32Array#__get i32.ne - br_if $folding-inner17 - local.get $26 + br_if $folding-inner18 + local.get $25 i32.const 1 i32.add - local.set $26 + local.set $25 br $for-loop|189 end end @@ -60882,19 +60888,19 @@ i32.store offset=4 loop $for-loop|094148 local.get $6 - local.get $27 + local.get $26 i32.gt_s if local.get $4 - local.get $27 + local.get $26 i32.const 10928 - local.get $27 + local.get $26 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $27 + local.get $26 i32.const 1 i32.add - local.set $27 + local.set $26 br $for-loop|094148 end end @@ -60912,9 +60918,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $4 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60940,7 +60946,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner18 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 @@ -60969,24 +60975,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $27 + local.set $26 loop $for-loop|199 local.get $6 - local.get $27 + local.get $26 i32.gt_s if local.get $4 - local.get $27 + local.get $26 call $~lib/typedarray/Uint32Array#__get local.get $0 - local.get $27 + local.get $26 call $~lib/typedarray/Uint32Array#__get i32.ne - br_if $folding-inner17 - local.get $27 + br_if $folding-inner18 + local.get $26 i32.const 1 i32.add - local.set $27 + local.set $26 br $for-loop|199 end end @@ -61024,20 +61030,20 @@ i32.store offset=4 loop $for-loop|0104 local.get $6 - local.get $28 + local.get $27 i32.gt_s if local.get $4 - local.get $28 + local.get $27 i32.const 10928 - local.get $28 + local.get $27 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $28 + local.get $27 i32.const 1 i32.add - local.set $28 + local.set $27 br $for-loop|0104 end end @@ -61055,9 +61061,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $4 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -61083,7 +61089,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner18 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 @@ -61112,24 +61118,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $28 + local.set $27 loop $for-loop|1109 local.get $6 - local.get $28 + local.get $27 i32.gt_s if local.get $4 - local.get $28 + local.get $27 call $~lib/typedarray/Int64Array#__get local.get $0 - local.get $28 + local.get $27 call $~lib/typedarray/Int64Array#__get i64.ne - br_if $folding-inner17 - local.get $28 + br_if $folding-inner18 + local.get $27 i32.const 1 i32.add - local.set $28 + local.set $27 br $for-loop|1109 end end @@ -61167,20 +61173,20 @@ i32.store offset=4 loop $for-loop|0114151 local.get $6 - local.get $29 + local.get $28 i32.gt_s if local.get $4 - local.get $29 + local.get $28 i32.const 10928 - local.get $29 + local.get $28 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $29 + local.get $28 i32.const 1 i32.add - local.set $29 + local.set $28 br $for-loop|0114151 end end @@ -61198,9 +61204,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $4 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -61226,7 +61232,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner18 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 @@ -61255,24 +61261,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $29 + local.set $28 loop $for-loop|1119 local.get $6 - local.get $29 + local.get $28 i32.gt_s if local.get $4 - local.get $29 + local.get $28 call $~lib/typedarray/Uint64Array#__get local.get $0 - local.get $29 + local.get $28 call $~lib/typedarray/Uint64Array#__get i64.ne - br_if $folding-inner17 - local.get $29 + br_if $folding-inner18 + local.get $28 i32.const 1 i32.add - local.set $29 + local.set $28 br $for-loop|1119 end end @@ -61310,20 +61316,20 @@ i32.store offset=4 loop $for-loop|0124 local.get $6 - local.get $30 + local.get $29 i32.gt_s if local.get $4 - local.get $30 + local.get $29 i32.const 10928 - local.get $30 + local.get $29 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $30 + local.get $29 i32.const 1 i32.add - local.set $30 + local.set $29 br $for-loop|0124 end end @@ -61341,9 +61347,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $4 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -61369,7 +61375,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner18 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 @@ -61398,24 +61404,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $30 + local.set $29 loop $for-loop|1129 local.get $6 - local.get $30 + local.get $29 i32.gt_s if local.get $4 - local.get $30 + local.get $29 call $~lib/typedarray/Float32Array#__get local.get $0 - local.get $30 + local.get $29 call $~lib/typedarray/Float32Array#__get f32.ne - br_if $folding-inner17 - local.get $30 + br_if $folding-inner18 + local.get $29 i32.const 1 i32.add - local.set $30 + local.set $29 br $for-loop|1129 end end @@ -61453,20 +61459,20 @@ i32.store offset=4 loop $for-loop|0134 local.get $6 - local.get $31 + local.get $30 i32.gt_s if local.get $4 - local.get $31 + local.get $30 i32.const 10928 - local.get $31 + local.get $30 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $31 + local.get $30 i32.const 1 i32.add - local.set $31 + local.set $30 br $for-loop|0134 end end @@ -61484,9 +61490,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $4 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -61512,7 +61518,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner18 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 @@ -61541,24 +61547,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $31 + local.set $30 loop $for-loop|1139 local.get $6 - local.get $31 + local.get $30 i32.gt_s if local.get $4 - local.get $31 + local.get $30 call $~lib/typedarray/Float64Array#__get local.get $0 - local.get $31 + local.get $30 call $~lib/typedarray/Float64Array#__get f64.ne - br_if $folding-inner17 - local.get $31 + br_if $folding-inner18 + local.get $30 i32.const 1 i32.add - local.set $31 + local.set $30 br $for-loop|1139 end end @@ -61658,13 +61664,13 @@ local.set $0 loop $for-loop|0145 local.get $0 - local.get $48 + local.get $52 i32.gt_s if local.get $2 - local.get $48 + local.get $52 i32.add - local.get $48 + local.get $52 i32.const 2 i32.shl local.get $1 @@ -61686,10 +61692,10 @@ i32.const 0 end i32.store8 - local.get $48 + local.get $52 i32.const 1 i32.add - local.set $48 + local.set $52 br $for-loop|0145 end end @@ -61722,13 +61728,13 @@ local.set $1 loop $for-loop|0151 local.get $1 - local.get $49 + local.get $53 i32.gt_s if local.get $3 - local.get $49 + local.get $53 i32.add - local.get $49 + local.get $53 i32.const 2 i32.shl local.get $2 @@ -61748,10 +61754,10 @@ i32.xor i32.and i32.store8 - local.get $49 + local.get $53 i32.const 1 i32.add - local.set $49 + local.set $53 br $for-loop|0151 end end @@ -61830,14 +61836,14 @@ local.set $1 loop $for-loop|0157 local.get $1 - local.get $50 + local.get $54 i32.gt_s if local.get $3 - local.get $50 + local.get $54 i32.add i32.const 255 - local.get $50 + local.get $54 i32.const 2 i32.shl local.get $2 @@ -61849,10 +61855,10 @@ i32.gt_u select i32.store8 - local.get $50 + local.get $54 i32.const 1 i32.add - local.set $50 + local.set $54 br $for-loop|0157 end end @@ -61908,7 +61914,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -61929,7 +61935,7 @@ unreachable end i32.const 15344 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15344 i32.store @@ -61938,7 +61944,7 @@ i32.load offset=4 local.get $2 i32.load offset=8 - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62031,7 +62037,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62052,7 +62058,7 @@ unreachable end i32.const 15408 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15408 i32.store @@ -62061,7 +62067,7 @@ i32.load offset=4 local.get $2 i32.load offset=8 - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62154,7 +62160,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62175,7 +62181,7 @@ unreachable end i32.const 15472 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15472 i32.store @@ -62184,7 +62190,7 @@ i32.load offset=4 local.get $2 i32.load offset=8 - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62277,7 +62283,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62298,7 +62304,7 @@ unreachable end i32.const 15536 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 15536 i32.store @@ -62309,7 +62315,7 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.get $13 + local.get $8 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62404,7 +62410,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62425,7 +62431,7 @@ unreachable end i32.const 15600 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 15600 i32.store @@ -62436,7 +62442,7 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.get $13 + local.get $8 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62531,7 +62537,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62552,7 +62558,7 @@ unreachable end i32.const 15664 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 15664 i32.store @@ -62563,7 +62569,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.get $13 + local.get $8 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62658,7 +62664,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62679,7 +62685,7 @@ unreachable end i32.const 15728 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 15728 i32.store @@ -62690,7 +62696,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.get $13 + local.get $8 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62785,7 +62791,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62806,7 +62812,7 @@ unreachable end i32.const 15792 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 15792 i32.store @@ -62817,7 +62823,7 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.get $13 + local.get $8 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62912,7 +62918,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62933,7 +62939,7 @@ unreachable end i32.const 15856 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 15856 i32.store @@ -62944,7 +62950,7 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.get $13 + local.get $8 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -63039,7 +63045,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63060,7 +63066,7 @@ unreachable end i32.const 15920 - local.set $13 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 15920 i32.store @@ -63071,7 +63077,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.get $13 + local.get $8 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -64054,32 +64060,32 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + local.get $4 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 local.get $0 i32.load - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 if + local.get $4 local.get $5 - local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 + local.get $4 local.get $0 i32.load offset=4 local.get $1 @@ -64087,7 +64093,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $3 i32.add local.tee $0 i32.const 0 @@ -64097,9 +64103,9 @@ select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end @@ -64108,13 +64114,13 @@ i32.shl i32.add i32.store offset=4 - local.get $5 + local.get $4 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -64124,9 +64130,9 @@ select else local.get $2 - local.get $4 + local.get $3 local.get $2 - local.get $4 + local.get $3 i32.lt_s select end @@ -64145,7 +64151,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 ) (func $~lib/typedarray/Float64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -64167,32 +64173,32 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + local.get $4 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 local.get $0 i32.load - local.tee $3 + local.tee $5 i32.store - local.get $3 + local.get $5 if + local.get $4 local.get $5 - local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 + local.get $4 local.get $0 i32.load offset=4 local.get $1 @@ -64200,7 +64206,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $3 i32.add local.tee $0 i32.const 0 @@ -64210,9 +64216,9 @@ select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end @@ -64221,13 +64227,13 @@ i32.shl i32.add i32.store offset=4 - local.get $5 + local.get $4 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -64237,9 +64243,9 @@ select else local.get $2 - local.get $4 + local.get $3 local.get $2 - local.get $4 + local.get $3 i32.lt_s select end @@ -64258,7 +64264,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 ) (func $~lib/typedarray/Float64Array#sort@varargs (param $0 i32) (result i32) (local $1 i32) @@ -64394,92 +64400,92 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store local.get $0 i32.load offset=8 - local.set $4 - local.get $3 + local.set $3 + local.get $4 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 local.get $0 i32.load local.tee $5 i32.store local.get $5 if - local.get $3 + local.get $4 local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 + local.get $0 + i32.load offset=4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $3 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end - local.tee $1 - local.get $0 - i32.load offset=4 + local.tee $0 i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $3 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select else local.get $2 - local.get $4 + local.get $3 local.get $2 - local.get $4 + local.get $3 i32.lt_s select end - local.tee $0 - local.get $1 + local.tee $1 + local.get $0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s select - local.get $1 + local.get $0 i32.sub i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -64610,20 +64616,20 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 if - local.get $4 local.get $3 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 @@ -64635,7 +64641,7 @@ local.tee $0 i32.add i32.store offset=4 - local.get $4 + local.get $3 local.get $1 i32.const 0 i32.lt_s @@ -64670,7 +64676,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -64702,20 +64708,20 @@ i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 if - local.get $4 local.get $3 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 @@ -64727,7 +64733,7 @@ local.tee $0 i32.add i32.store offset=4 - local.get $4 + local.get $3 local.get $1 i32.const 0 i32.lt_s @@ -64762,7 +64768,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -64784,37 +64790,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 local.get $0 i32.load - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 if + local.get $3 local.get $4 - local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 4 i32.gt_u select @@ -64823,13 +64829,13 @@ i32.shl i32.add i32.store offset=4 - local.get $4 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -64839,9 +64845,9 @@ select else local.get $1 - local.get $3 + local.get $2 local.get $1 - local.get $3 + local.get $2 i32.lt_s select end @@ -64860,7 +64866,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -64882,37 +64888,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 local.get $0 i32.load - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 if + local.get $3 local.get $4 - local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 4 i32.gt_u select @@ -64921,13 +64927,13 @@ i32.shl i32.add i32.store offset=4 - local.get $4 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -64937,9 +64943,9 @@ select else local.get $1 - local.get $3 + local.get $2 local.get $1 - local.get $3 + local.get $2 i32.lt_s select end @@ -64958,7 +64964,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -64980,37 +64986,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 local.get $0 i32.load - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 if + local.get $3 local.get $4 - local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 4 i32.gt_u select @@ -65019,13 +65025,13 @@ i32.shl i32.add i32.store offset=4 - local.get $4 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -65035,9 +65041,9 @@ select else local.get $1 - local.get $3 + local.get $2 local.get $1 - local.get $3 + local.get $2 i32.lt_s select end @@ -65056,7 +65062,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65078,37 +65084,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 local.get $0 i32.load - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 if + local.get $3 local.get $4 - local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 4 i32.gt_u select @@ -65117,13 +65123,13 @@ i32.shl i32.add i32.store offset=4 - local.get $4 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -65133,9 +65139,9 @@ select else local.get $1 - local.get $3 + local.get $2 local.get $1 - local.get $3 + local.get $2 i32.lt_s select end @@ -65154,7 +65160,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65176,37 +65182,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 local.get $0 i32.load - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 if + local.get $3 local.get $4 - local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 4 i32.gt_u select @@ -65215,13 +65221,13 @@ i32.shl i32.add i32.store offset=4 - local.get $4 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -65231,9 +65237,9 @@ select else local.get $1 - local.get $3 + local.get $2 local.get $1 - local.get $3 + local.get $2 i32.lt_s select end @@ -65252,7 +65258,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65274,37 +65280,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 local.get $0 i32.load - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 if + local.get $3 local.get $4 - local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $3 local.get $0 i32.load offset=4 i32.const 4 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 4 i32.gt_u select @@ -65313,13 +65319,13 @@ i32.shl i32.add i32.store offset=4 - local.get $4 + local.get $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $2 i32.add local.tee $1 i32.const 0 @@ -65329,9 +65335,9 @@ select else local.get $1 - local.get $3 + local.get $2 local.get $1 - local.get $3 + local.get $2 i32.lt_s select end @@ -65350,7 +65356,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/util/number/itoa32 (param $0 i32) (result i32) (local $1 i32) @@ -65730,22 +65736,22 @@ call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - i32.const 9808 local.get $2 + i32.const 9808 + local.get $1 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index 26d3543049..8dd4565b37 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -714,12 +714,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -737,11 +737,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 20752 @@ -749,14 +749,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -766,17 +766,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -793,116 +793,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 20748 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -913,146 +840,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 20748 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1248 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 20748 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1248 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 20748 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 20748 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1520 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1520 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3637,6 +3639,7 @@ ) (func $start:std/uri (local $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3653,6 +3656,7 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $1 local.tee $0 i64.const 0 i64.store @@ -3691,7 +3695,7 @@ i32.store i32.const 1472 global.set $~lib/rt/itcms/fromSpace - local.get $0 + local.get $1 i32.const 1056 i32.store offset=8 i32.const 1056 diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index 3244d03beb..88224adf9d 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -607,12 +607,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -630,11 +630,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17872 @@ -642,14 +642,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -659,17 +659,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -686,116 +686,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -806,146 +733,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17868 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17868 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17868 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index 274cd08f73..61de130cbe 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -405,6 +405,8 @@ i32.load i32.const 32 i32.and + i32.const 0 + i32.ne end local.set $3 local.get $2 @@ -949,12 +951,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -972,11 +974,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 22128 @@ -984,14 +986,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -1001,17 +1003,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -1028,116 +1030,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 22116 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -1148,146 +1077,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 22116 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1280 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 22116 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1280 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 22116 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 22116 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1552 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1552 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4792,18 +4796,18 @@ end local.get $2 call $templateliteral/Ref#toString - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=16 local.get $0 call $templateliteral/Ref#toString - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 local.get $3 + i32.store offset=20 local.get $1 + local.get $3 call $~lib/string/String#concat local.set $1 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/ternary.optimized.wat b/tests/compiler/ternary.optimized.wat index cff99dff2f..432be740c1 100644 --- a/tests/compiler/ternary.optimized.wat +++ b/tests/compiler/ternary.optimized.wat @@ -21,6 +21,7 @@ select ) (func $ternary/testDropWithTypeMismatch (param $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -37,13 +38,14 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $1 local.tee $0 i32.const 0 i32.store local.get $0 i32.const 1056 i32.store - local.get $0 + local.get $1 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index 916ccc9c2e..84b5e47bbc 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -523,11 +523,11 @@ if local.get $0 global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -595,11 +595,11 @@ local.get $0 i32.ne if + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -642,11 +642,11 @@ return end global.get $~lib/rt/itcms/iter - local.tee $0 + local.tee $1 global.get $~lib/rt/itcms/toSpace i32.ne if - local.get $0 + local.get $1 i32.load offset=4 local.tee $3 i32.const -4 @@ -666,19 +666,19 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 18140 i32.lt_u if - local.get $0 + local.get $1 i32.const 0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 else global.get $~lib/rt/itcms/total - local.get $0 + local.get $1 i32.load i32.const -4 i32.and @@ -686,7 +686,7 @@ i32.add i32.sub global.set $~lib/rt/itcms/total - local.get $0 + local.get $1 i32.const 4 i32.add local.tee $3 @@ -697,12 +697,12 @@ i32.eqz if memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -720,11 +720,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18144 @@ -732,14 +732,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -749,17 +749,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -894,7 +894,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -963,6 +964,7 @@ (func $~start (local $0 i32) (local $1 i32) + (local $2 i32) block $__inlined_func$start:throw global.get $~lib/memory/__stack_pointer i32.const 12 @@ -974,6 +976,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.tee $2 local.tee $1 i64.const 0 i64.store @@ -983,10 +986,10 @@ local.get $1 i32.const 1056 i32.store - local.get $1 + local.get $2 i32.const 1216 i32.store offset=8 - local.get $1 + local.get $2 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index 657bbe6d3a..83ff1586a7 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -739,12 +739,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -762,11 +762,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 18224 @@ -774,14 +774,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -791,17 +791,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -818,116 +818,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18220 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -938,146 +865,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18220 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne if - i32.const 0 - i32.const 1424 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 18220 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1424 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 18220 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total local.get $0 - i32.const 15 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 18220 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1696 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1696 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1585,7 +1587,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1639,7 +1641,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1647,7 +1649,7 @@ memory.size local.tee $0 i32.const 4 - local.get $3 + local.get $2 i32.load offset=1568 local.get $0 i32.const 16 @@ -1662,16 +1664,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $0 - local.get $1 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1679,7 +1681,7 @@ unreachable end end - local.get $3 + local.get $2 local.get $0 i32.const 16 i32.shl @@ -1687,7 +1689,7 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $0 i32.eqz @@ -1714,22 +1716,22 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $0 call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $4 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $1 + local.tee $4 i32.const 16 i32.ge_u if local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1738,19 +1740,19 @@ local.get $0 i32.const 32 i32.add - local.tee $4 - local.get $1 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $2 local.get $3 - local.get $4 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $4 + local.get $3 i32.const -2 i32.and i32.store @@ -1762,8 +1764,8 @@ i32.const -4 i32.and i32.add - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and @@ -1776,12 +1778,12 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $0 @@ -1795,7 +1797,7 @@ local.get $0 i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1807,7 +1809,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 local.get $0 i32.const 20 i32.add diff --git a/tests/compiler/unary.optimized.wat b/tests/compiler/unary.optimized.wat index 187f41a7a7..fce7445239 100644 --- a/tests/compiler/unary.optimized.wat +++ b/tests/compiler/unary.optimized.wat @@ -34,6 +34,8 @@ global.set $unary/i i32.const -2 global.set $unary/i + i32.const -2 + global.set $unary/i i32.const 2 global.set $unary/i i32.const 0 @@ -76,6 +78,8 @@ global.set $unary/I i64.const -2 global.set $unary/I + i64.const -2 + global.set $unary/I i64.const 2 global.set $unary/I i64.const 0 diff --git a/tests/compiler/wasi/seed.optimized.wat b/tests/compiler/wasi/seed.optimized.wat index 848be996bd..1dd4b8acc5 100644 --- a/tests/compiler/wasi/seed.optimized.wat +++ b/tests/compiler/wasi/seed.optimized.wat @@ -34,9 +34,9 @@ i64.eqz select local.tee $0 + local.get $0 i64.const 33 i64.shr_u - local.get $0 i64.xor i64.const -49064778989728563 i64.mul diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 150dbd3589..375eebe3de 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -959,12 +959,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -982,11 +982,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 19024 @@ -994,14 +994,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -1011,17 +1011,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -3252,24 +3252,24 @@ (local $9 i32) (local $10 i32) i32.const 1056 - local.set $7 + local.set $6 i32.const 1052 i32.load i32.const 1056 i32.add local.set $8 loop $while-continue|0 - local.get $7 + local.get $6 local.get $8 i32.lt_u if - local.get $7 + local.get $6 i32.load16_u local.tee $9 i32.const 128 i32.lt_u if (result i32) - local.get $6 + local.get $7 i32.const 1 i32.add else @@ -3277,7 +3277,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $6 + local.get $7 i32.const 2 i32.add else @@ -3287,40 +3287,40 @@ i32.const 55296 i32.eq local.get $8 - local.get $7 + local.get $6 i32.const 2 i32.add i32.gt_u i32.and if - local.get $7 + local.get $6 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $6 - i32.const 4 - i32.add - local.set $6 local.get $7 i32.const 4 i32.add local.set $7 + local.get $6 + i32.const 4 + i32.add + local.set $6 br $while-continue|0 end end - local.get $6 + local.get $7 i32.const 3 i32.add end end - local.set $6 - local.get $7 + local.set $7 + local.get $6 i32.const 2 i32.add - local.set $7 + local.set $6 br $while-continue|0 end end @@ -3331,9 +3331,9 @@ end global.get $~lib/rt/tlsf/ROOT local.set $8 - local.get $6 + local.get $7 i32.const 56 - local.get $6 + local.get $7 i32.const 56 i32.gt_s select @@ -3365,7 +3365,7 @@ select local.tee $9 call $~lib/rt/tlsf/searchBlock - local.tee $7 + local.tee $6 i32.eqz if memory.size @@ -3430,7 +3430,7 @@ local.get $8 local.get $9 call $~lib/rt/tlsf/searchBlock - local.tee $7 + local.tee $6 i32.eqz if i32.const 0 @@ -3441,7 +3441,7 @@ unreachable end end - local.get $7 + local.get $6 i32.load i32.const -4 i32.and @@ -3456,11 +3456,11 @@ unreachable end local.get $8 - local.get $7 + local.get $6 call $~lib/rt/tlsf/removeBlock - local.get $7 + local.get $6 i32.load - local.set $6 + local.set $7 local.get $9 i32.const 4 i32.add @@ -3474,7 +3474,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $6 + local.get $7 i32.const -4 i32.and local.get $9 @@ -3483,19 +3483,19 @@ i32.const 16 i32.ge_u if - local.get $7 local.get $6 + local.get $7 i32.const 2 i32.and local.get $9 i32.or i32.store local.get $9 - local.get $7 + local.get $6 i32.const 4 i32.add i32.add - local.tee $6 + local.tee $7 local.get $10 i32.const 4 i32.sub @@ -3503,30 +3503,30 @@ i32.or i32.store local.get $8 - local.get $6 + local.get $7 call $~lib/rt/tlsf/insertBlock else - local.get $7 local.get $6 + local.get $7 i32.const -2 i32.and i32.store - local.get $7 + local.get $6 i32.const 4 i32.add - local.get $7 + local.get $6 i32.load i32.const -4 i32.and i32.add - local.tee $6 - local.get $6 + local.tee $7 + local.get $7 i32.load i32.const -3 i32.and i32.store end - local.get $7 + local.get $6 i32.const 4 i32.add local.tee $6 diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index 778cd42c77..c8cae21b13 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -595,12 +595,12 @@ (local $0 i32) (local $1 i32) memory.size - local.tee $0 + local.tee $1 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $0 + local.get $1 i32.sub memory.grow i32.const 0 @@ -618,11 +618,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 23 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 17920 @@ -630,14 +630,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 16 i32.lt_u if - local.get $0 local.get $1 + local.get $0 i32.const 4 i32.shl i32.add @@ -647,17 +647,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -674,116 +674,43 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 + block $folding-inner0 + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + br $folding-inner0 end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|2 + loop $while-continue|1 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if + local.get $0 + global.set $~lib/rt/itcms/iter + local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $1 i32.ne if local.get $0 @@ -794,146 +721,221 @@ i32.and i32.or i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members + br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|2 + br $while-continue|1 end end - global.get $~lib/rt/itcms/fromSpace - local.set $0 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 + global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17908 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|2 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $1 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|2 + end + end + global.get $~lib/rt/itcms/fromSpace + local.set $0 + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state + end + br $folding-inner0 end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 17908 - i32.lt_u if local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load + i32.load offset=4 + local.tee $1 i32.const -4 i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and + i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.const 4 - i32.add - local.tee $0 i32.const 17908 - i32.ge_u + i32.lt_u if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 4 - i32.sub - local.set $2 + i32.const 0 + i32.store offset=4 local.get $0 - i32.const 15 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 i32.and - i32.const 1 + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - select - if (result i32) + i32.const 4 + i32.add + local.tee $0 + i32.const 17908 + i32.ge_u + if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $0 + i32.const 4 + i32.sub + local.set $2 + local.get $0 + i32.const 15 + i32.and i32.const 1 - else + local.get $0 + select + if (result i32) + i32.const 1 + else + local.get $2 + i32.load + i32.const 1 + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 local.get $2 i32.load i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - local.get $2 - local.get $2 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock end + i32.const 10 + return end - i32.const 10 - return + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.tee $1 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 + i32.const 0 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 i32.const 0 - global.set $~lib/rt/itcms/state + return end - i32.const 0 + global.get $~lib/rt/itcms/visitCount ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1748,8 +1750,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 From 603a823d7cd44c915b0d0aedf78904cdcd562ccc Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Tue, 23 Nov 2021 19:32:29 +0200 Subject: [PATCH 2/3] better? --- src/module.ts | 1 + tests/compiler/call-super.optimized.wat | 440 +- tests/compiler/class-implements.optimized.wat | 440 +- .../class-overloading-cast.optimized.wat | 493 +- .../compiler/class-overloading.optimized.wat | 440 +- tests/compiler/class.optimized.wat | 396 +- tests/compiler/constructor.optimized.wat | 440 +- tests/compiler/do.optimized.wat | 538 +- .../empty-exportruntime.optimized.wat | 9 +- tests/compiler/empty-new.optimized.wat | 55 +- tests/compiler/exports.optimized.wat | 440 +- .../exportstar-rereexport.optimized.wat | 442 +- .../extends-baseaggregate.optimized.wat | 520 +- .../compiler/extends-recursive.optimized.wat | 396 +- .../field-initialization.optimized.wat | 405 +- tests/compiler/field.optimized.wat | 396 +- tests/compiler/for.optimized.wat | 551 +- tests/compiler/function-call.optimized.wat | 440 +- .../function-expression.optimized.wat | 409 +- tests/compiler/getter-call.optimized.wat | 442 +- tests/compiler/heap.optimized.wat | 16 +- .../implicit-getter-setter.optimized.wat | 396 +- tests/compiler/infer-array.optimized.wat | 399 +- tests/compiler/infer-generic.optimized.wat | 465 +- tests/compiler/inlining.optimized.wat | 440 +- tests/compiler/instanceof-class.optimized.wat | 440 +- tests/compiler/issues/1095.optimized.wat | 416 +- tests/compiler/issues/1225.optimized.wat | 442 +- tests/compiler/issues/1699.optimized.wat | 504 +- tests/compiler/logical.optimized.wat | 442 +- tests/compiler/managed-cast.optimized.wat | 501 +- tests/compiler/new.optimized.wat | 440 +- tests/compiler/number.optimized.wat | 449 +- tests/compiler/object-literal.optimized.wat | 338 +- .../optional-typeparameters.optimized.wat | 440 +- tests/compiler/possibly-null.optimized.wat | 47 +- tests/compiler/reexport.optimized.wat | 440 +- tests/compiler/rereexport.optimized.wat | 442 +- tests/compiler/resolve-access.optimized.wat | 496 +- tests/compiler/resolve-binary.optimized.wat | 510 +- .../resolve-elementaccess.optimized.wat | 464 +- .../resolve-function-expression.optimized.wat | 619 +- tests/compiler/resolve-nested.optimized.wat | 452 +- tests/compiler/resolve-new.optimized.wat | 446 +- .../resolve-propertyaccess.optimized.wat | 455 +- tests/compiler/resolve-ternary.optimized.wat | 1122 +- tests/compiler/resolve-unary.optimized.wat | 460 +- tests/compiler/rt/finalize.optimized.wat | 456 +- tests/compiler/rt/instanceof.optimized.wat | 440 +- .../runtime-incremental-export.optimized.wat | 9 +- .../rt/runtime-minimal-export.optimized.wat | 8 +- tests/compiler/std-wasi/console.optimized.wat | 488 +- tests/compiler/std-wasi/crypto.optimized.wat | 494 +- tests/compiler/std-wasi/process.optimized.wat | 673 +- .../compiler/std/array-literal.optimized.wat | 396 +- tests/compiler/std/array.optimized.wat | 5654 ++++---- tests/compiler/std/arraybuffer.optimized.wat | 447 +- tests/compiler/std/dataview.optimized.wat | 410 +- tests/compiler/std/date.optimized.wat | 541 +- tests/compiler/std/map.optimized.wat | 6369 ++++----- tests/compiler/std/math.optimized.wat | 284 +- tests/compiler/std/new.optimized.wat | 481 +- .../std/operator-overloading.optimized.wat | 485 +- tests/compiler/std/set.optimized.wat | 4071 +++--- tests/compiler/std/static-array.optimized.wat | 396 +- tests/compiler/std/staticarray.optimized.wat | 1702 +-- .../std/string-casemapping.optimized.wat | 685 +- .../std/string-encoding.optimized.wat | 553 +- tests/compiler/std/string.optimized.wat | 712 +- tests/compiler/std/symbol.optimized.wat | 705 +- tests/compiler/std/typedarray.optimized.wat | 10987 ++++++++-------- tests/compiler/std/uri.optimized.wat | 444 +- tests/compiler/super-inline.optimized.wat | 440 +- tests/compiler/templateliteral.optimized.wat | 396 +- tests/compiler/ternary.optimized.wat | 4 +- tests/compiler/throw.optimized.wat | 99 +- tests/compiler/typeof.optimized.wat | 442 +- tests/compiler/unary.optimized.wat | 4 - tests/compiler/wasi/seed.optimized.wat | 33 +- tests/compiler/wasi/trace.optimized.wat | 68 +- tests/compiler/while.optimized.wat | 614 +- 81 files changed, 29843 insertions(+), 29921 deletions(-) diff --git a/src/module.ts b/src/module.ts index 2ad570edde..c7969ca745 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2306,6 +2306,7 @@ export class Module { if (optimizeLevel >= 2) { passes.push("once-reduction"); passes.push("inlining"); + passes.push("simplify-globals-optimizing"); } if (optimizeLevel >= 3 || shrinkLevel >= 1) { passes.push("rse"); diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index fb578e1489..12ab385708 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -674,43 +674,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17980 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -721,221 +794,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17980 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17980 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17980 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17980 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2230,19 +2228,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -2252,22 +2250,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17980 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -2281,7 +2279,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -2293,7 +2291,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -2301,15 +2299,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -2317,7 +2315,7 @@ else i32.const 1488 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1296 @@ -2327,7 +2325,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -2345,25 +2343,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index 4375c0da2f..e38032dcbb 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -696,43 +696,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17948 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -743,221 +816,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17948 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17948 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17948 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17948 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1563,19 +1561,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1585,22 +1583,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17948 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1614,7 +1612,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1626,7 +1624,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1634,15 +1632,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1650,7 +1648,7 @@ else i32.const 1504 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1660,7 +1658,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1508 @@ -1678,25 +1676,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index e113645d5f..b517856eda 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -710,43 +710,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18084 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -757,221 +830,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18084 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18084 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18084 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18084 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1434,7 +1432,6 @@ (func $start:class-overloading-cast (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1446,10 +1443,9 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 memory.size @@ -1592,23 +1588,22 @@ local.get $0 global.set $class-overloading-cast/v3 global.get $~lib/memory/__stack_pointer - local.tee $0 block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/v - local.tee $1 + local.tee $0 i32.store offset=8 block $default block $case1 - local.get $1 + local.get $0 i32.const 8 i32.sub i32.load - local.tee $1 + local.tee $0 i32.const 3 i32.ne if - local.get $1 + local.get $0 i32.const 5 i32.eq br_if $case1 @@ -1622,12 +1617,12 @@ end i32.const 1456 end - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1661,16 +1656,14 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.tee $1 block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) - local.get $0 - global.get $class-overloading-cast/v3 + global.get $~lib/memory/__stack_pointer local.tee $0 + global.get $class-overloading-cast/v3 + local.tee $1 i32.store offset=8 i32.const 1488 - local.get $0 + local.get $1 i32.const 8 i32.sub i32.load @@ -1680,12 +1673,14 @@ drop i32.const 1456 end - local.tee $0 - i32.store + local.set $1 + local.get $0 local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1761,10 +1756,9 @@ i32.load drop global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1456 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store offset=4 i32.const 1456 @@ -1780,23 +1774,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.tee $2 - global.get $class-overloading-cast/c local.tee $0 + global.get $class-overloading-cast/c + local.tee $1 i32.store offset=8 - local.get $2 + local.get $0 i32.const 1600 i32.store offset=12 - local.get $0 + local.get $1 i32.const 8 i32.sub i32.load drop - local.get $1 + local.get $0 i32.const 1456 i32.store - local.get $1 + local.get $0 i32.const 1456 i32.store offset=4 i32.const 1456 @@ -1866,19 +1859,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1888,22 +1881,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18084 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1917,7 +1910,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1929,7 +1922,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1937,15 +1930,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1953,7 +1946,7 @@ else i32.const 1616 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1963,7 +1956,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1620 @@ -1981,25 +1974,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index 7adf4a0b32..5dc91cb6a2 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -734,43 +734,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18316 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -781,221 +854,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18316 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18316 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18316 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18316 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -2998,19 +2996,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -3020,22 +3018,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18316 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -3049,7 +3047,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -3061,7 +3059,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -3069,15 +3067,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -3085,7 +3083,7 @@ else i32.const 1792 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1280 @@ -3095,7 +3093,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1796 @@ -3113,25 +3111,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index a2e212bf22..9ce8ee5e5f 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -191,8 +191,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -816,43 +814,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17972 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -863,221 +934,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17972 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17972 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17972 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17972 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index fc7d5f795c..53f8d7513f 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -751,43 +751,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17988 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -798,221 +871,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17988 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17988 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17988 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17988 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2075,19 +2073,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -2097,22 +2095,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17988 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -2126,7 +2124,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -2138,7 +2136,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -2146,15 +2144,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -2162,7 +2160,7 @@ else i32.const 1488 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -2172,7 +2170,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -2190,25 +2188,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index d5e67b8145..85ff5e74b6 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -674,43 +674,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17892 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -721,221 +794,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17892 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17892 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17892 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17892 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -998,14 +996,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) i32.const 10 local.set $0 loop $do-loop|0 @@ -1063,20 +1053,22 @@ end i32.const 10 local.set $0 + i32.const 0 + local.set $1 loop $do-loop|03 local.get $0 i32.const 1 i32.sub local.set $0 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 loop $do-loop|1 - local.get $10 + local.get $1 i32.const 1 i32.add - local.set $10 + local.set $1 local.get $0 i32.const 1 i32.sub @@ -1092,7 +1084,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $1 i32.const 9 i32.ne if @@ -1115,7 +1107,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $2 i32.const 1 i32.ne if @@ -1126,7 +1118,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $1 i32.const 9 i32.ne if @@ -1137,16 +1129,18 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $0 loop $do-loop|05 - local.get $5 + local.get $0 i32.const 1 i32.add - local.tee $5 + local.tee $0 i32.const 10 i32.ne br_if $do-loop|05 end - local.get $5 + local.get $0 i32.const 10 i32.ne if @@ -1157,16 +1151,18 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $0 loop $do-loop|07 - local.get $4 + local.get $0 i32.const 1 i32.add - local.tee $4 + local.tee $0 i32.const 10 i32.ne br_if $do-loop|07 end - local.get $4 + local.get $0 i32.const 10 i32.ne if @@ -1177,19 +1173,21 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $0 loop $do-loop|015 - local.get $9 + local.get $0 i32.const 1 i32.add - local.tee $9 + local.tee $0 i32.const 10 i32.ne i32.const 0 - local.get $9 + local.get $0 select br_if $do-loop|015 end - local.get $9 + local.get $0 i32.const 10 i32.ne if @@ -1200,31 +1198,35 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $0 + i32.const 0 + local.set $1 loop $do-loop|017 - local.get $8 + local.get $0 i32.const 1 i32.add - local.tee $8 + local.tee $0 i32.const 10 i32.ne if loop $do-loop|120 - local.get $7 + local.get $1 i32.const 1 i32.add - local.tee $7 + local.tee $1 i32.const 10 i32.rem_s i32.const 0 - local.get $7 + local.get $1 select br_if $do-loop|120 end - local.get $8 + local.get $0 br_if $do-loop|017 end end - local.get $8 + local.get $0 i32.const 10 i32.ne if @@ -1235,7 +1237,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $1 i32.const 90 i32.ne if @@ -1291,14 +1293,16 @@ local.tee $0 i32.const 0 i32.store + i32.const 0 + local.set $1 local.get $0 call $do/Ref#constructor i32.store loop $do-loop|08 - local.get $3 + local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $1 i32.const 10 i32.eq if @@ -1313,7 +1317,7 @@ local.get $0 br_if $do-loop|08 end - local.get $3 + local.get $1 i32.const 10 i32.ne if @@ -1346,31 +1350,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + i32.const 0 + local.set $0 + local.get $1 call $do/Ref#constructor - local.tee $0 + local.tee $1 i32.store loop $do-loop|012 block $do-break|011 - local.get $2 + local.get $0 i32.const 1 i32.add - local.tee $2 + local.tee $0 i32.const 10 i32.eq if i32.const 0 - local.set $0 + local.set $1 br $do-break|011 end call $do/Ref#constructor br_if $do-loop|012 end end - local.get $2 + local.get $0 i32.const 10 i32.ne if @@ -1381,7 +1387,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 if i32.const 0 i32.const 1056 @@ -1685,8 +1691,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1732,19 +1738,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1754,22 +1760,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17892 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1783,7 +1789,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1795,7 +1801,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1803,15 +1809,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1819,7 +1825,7 @@ else i32.const 1472 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1280 @@ -1829,7 +1835,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1476 @@ -1847,25 +1853,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 5b9b51a85e..fe98d1636f 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -197,8 +197,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $1 @@ -854,11 +852,11 @@ if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -927,11 +925,11 @@ local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1073,8 +1071,7 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.tee $1 - local.get $1 + local.get $0 i32.store offset=4 local.get $0 local.get $0 diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index 7c6c20b481..f761c77533 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -702,11 +702,11 @@ if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -775,11 +775,11 @@ local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -921,8 +921,7 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.tee $1 - local.get $1 + local.get $0 i32.store offset=4 local.get $0 local.get $0 @@ -1244,8 +1243,8 @@ i32.load offset=8 local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1280,19 +1279,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1302,22 +1301,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17852 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1331,7 +1330,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1343,7 +1342,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1351,15 +1350,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1367,7 +1366,7 @@ else i32.const 1440 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1377,7 +1376,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -1395,25 +1394,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index 9ae8ab4f65..5ed5161167 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -724,43 +724,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17868 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -771,221 +844,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17868 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17868 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17868 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1621,19 +1619,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1643,22 +1641,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17868 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1672,7 +1670,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1684,7 +1682,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1692,15 +1690,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1708,7 +1706,7 @@ else i32.const 1440 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1718,7 +1716,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -1736,25 +1734,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index eae2c92bcf..d0902ec05e 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -725,43 +725,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17956 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -772,221 +845,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17956 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17956 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17956 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17956 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1430,8 +1428,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1511,19 +1509,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1533,22 +1531,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17956 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1562,7 +1560,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1574,7 +1572,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1582,15 +1580,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1598,7 +1596,7 @@ else i32.const 1536 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1296 @@ -1608,7 +1606,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1540 @@ -1626,25 +1624,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index e856bc8727..8f7b54a20f 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -197,8 +197,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -822,43 +820,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18156 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -869,221 +940,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18156 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1280 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18156 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1280 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18156 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18156 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1552 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1552 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2383,10 +2379,10 @@ (local $10 i32) i32.const 1180 i32.load - local.tee $7 + local.tee $10 i32.const 1 i32.add - local.tee $8 + local.tee $9 i32.const 1176 i32.load local.tee $1 @@ -2394,7 +2390,7 @@ i32.shr_u i32.gt_u if - local.get $8 + local.get $9 i32.const 268435455 i32.gt_u if @@ -2416,9 +2412,9 @@ i32.lt_u select local.tee $1 - local.get $8 + local.get $9 i32.const 8 - local.get $8 + local.get $9 i32.const 8 i32.gt_u select @@ -2429,14 +2425,13 @@ local.get $2 i32.gt_u select - local.tee $9 + local.tee $8 i32.const 1168 i32.load - local.tee $6 - local.tee $1 + local.tee $3 i32.const 20 i32.sub - local.tee $3 + local.tee $1 i32.load i32.const -4 i32.and @@ -2444,38 +2439,41 @@ i32.sub i32.le_u if - local.get $3 - local.get $9 + local.get $1 + local.get $8 i32.store offset=16 + local.get $3 + local.set $6 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $9 - local.get $3 + local.get $8 + local.get $1 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 local.set $2 - local.get $9 - local.get $3 + local.get $8 + local.get $1 i32.load offset=16 - local.tee $3 - local.get $3 - local.get $9 + local.tee $1 + local.get $1 + local.get $8 i32.gt_u select - local.set $10 + local.set $7 block $~lib/util/memory/memmove|inlined.0 - local.get $1 + local.get $3 + local.tee $1 local.get $2 i32.eq br_if $~lib/util/memory/memmove|inlined.0 local.get $1 local.get $2 i32.sub - local.get $10 + local.get $7 i32.sub i32.const 0 - local.get $10 + local.get $7 i32.const 1 i32.shl i32.sub @@ -2483,7 +2481,7 @@ if local.get $2 local.get $1 - local.get $10 + local.get $7 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end @@ -2504,32 +2502,32 @@ i32.const 7 i32.and if - local.get $10 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $10 + local.get $7 i32.const 1 i32.sub - local.set $10 + local.set $7 local.get $2 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $2 local.get $1 - local.tee $4 + local.tee $5 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $5 i32.load8_u i32.store8 br $while-continue|0 end end loop $while-continue|1 - local.get $10 + local.get $7 i32.const 8 i32.ge_u if @@ -2537,10 +2535,10 @@ local.get $1 i64.load i64.store - local.get $10 + local.get $7 i32.const 8 i32.sub - local.set $10 + local.set $7 local.get $2 i32.const 8 i32.add @@ -2554,26 +2552,26 @@ end end loop $while-continue|2 - local.get $10 + local.get $7 if local.get $2 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $2 local.get $1 - local.tee $4 + local.tee $5 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $5 i32.load8_u i32.store8 - local.get $10 + local.get $7 i32.const 1 i32.sub - local.set $10 + local.set $7 br $while-continue|2 end end @@ -2588,22 +2586,22 @@ if loop $while-continue|3 local.get $2 - local.get $10 + local.get $7 i32.add i32.const 7 i32.and if - local.get $10 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $10 + local.get $7 i32.const 1 i32.sub - local.tee $10 + local.tee $7 local.get $2 i32.add local.get $1 - local.get $10 + local.get $7 i32.add i32.load8_u i32.store8 @@ -2611,18 +2609,18 @@ end end loop $while-continue|4 - local.get $10 + local.get $7 i32.const 8 i32.ge_u if - local.get $10 + local.get $7 i32.const 8 i32.sub - local.tee $10 + local.tee $7 local.get $2 i32.add local.get $1 - local.get $10 + local.get $7 i32.add i64.load i64.store @@ -2631,16 +2629,16 @@ end end loop $while-continue|5 - local.get $10 + local.get $7 if - local.get $10 + local.get $7 i32.const 1 i32.sub - local.tee $10 + local.tee $7 local.get $2 i32.add local.get $1 - local.get $10 + local.get $7 i32.add i32.load8_u i32.store8 @@ -2649,33 +2647,31 @@ end end end - local.get $5 - local.set $1 end - local.get $1 + local.get $3 local.get $6 i32.ne if i32.const 1168 - local.get $1 + local.get $6 i32.store i32.const 1172 - local.get $1 + local.get $6 i32.store - local.get $1 + local.get $6 if - local.get $1 + local.get $6 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end end i32.const 1176 - local.get $9 + local.get $8 i32.store end i32.const 1172 i32.load - local.get $7 + local.get $10 i32.const 2 i32.shl i32.add @@ -2688,7 +2684,7 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end i32.const 1180 - local.get $8 + local.get $9 i32.store ) (func $~lib/array/Array~visit (param $0 i32) diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index 7f45bd9d5d..59bdece94e 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -186,8 +186,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -811,43 +809,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17868 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -858,221 +929,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17868 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17868 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17868 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index d0bb2dd8e2..de4c616b77 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -204,8 +204,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -829,43 +827,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18380 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -876,221 +947,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18380 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18380 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18380 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18380 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1908,19 +1904,18 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i64.const 0 i64.store offset=16 - local.get $1 + local.get $0 i64.const 0 i64.store offset=24 - local.get $1 + local.get $0 i64.const 0 i64.store offset=32 memory.size diff --git a/tests/compiler/field.optimized.wat b/tests/compiler/field.optimized.wat index bdf6280e80..c0fb5654d4 100644 --- a/tests/compiler/field.optimized.wat +++ b/tests/compiler/field.optimized.wat @@ -182,8 +182,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -807,43 +805,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17908 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -854,221 +925,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17908 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17908 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17908 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 94159af172..449ace1ed4 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -674,43 +674,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17892 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -721,221 +794,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17892 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17892 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17892 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17892 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -998,26 +996,19 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) loop $for-loop|0 - local.get $1 + local.get $0 i32.const 10 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end - local.get $1 + local.get $0 i32.const 10 i32.ne if @@ -1028,19 +1019,21 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $0 loop $for-loop|01 - local.get $3 + local.get $0 i32.const 10 i32.lt_s if - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|01 end end - local.get $3 + local.get $0 i32.const 10 i32.ne if @@ -1052,20 +1045,20 @@ unreachable end i32.const 10 - local.set $1 + local.set $0 loop $for-loop|04 - local.get $1 + local.get $0 i32.const 0 i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|04 end end - local.get $1 + local.get $0 if i32.const 0 i32.const 1056 @@ -1074,19 +1067,21 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $0 loop $for-loop|07 - local.get $4 + local.get $0 i32.const 10 i32.ne if - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|07 end end - local.get $4 + local.get $0 i32.const 10 i32.ne if @@ -1098,15 +1093,15 @@ unreachable end i32.const 10 - local.set $1 + local.set $0 loop $for-loop|010 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $1 + local.tee $0 br_if $for-loop|010 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1056 @@ -1115,16 +1110,18 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $0 loop $for-loop|013 - local.get $7 + local.get $0 i32.const 1 i32.add - local.tee $7 + local.tee $0 i32.const 10 i32.ne br_if $for-loop|013 end - local.get $7 + local.get $0 i32.const 10 i32.ne if @@ -1135,19 +1132,21 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $0 loop $for-loop|016 - local.get $5 + local.get $0 i32.const 10 i32.lt_s if - local.get $5 + local.get $0 i32.const 1 i32.add - local.set $5 + local.set $0 br $for-loop|016 end end - local.get $5 + local.get $0 i32.const 10 i32.ne if @@ -1158,6 +1157,8 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $0 loop $for-loop|025 local.get $0 i32.const 10 @@ -1168,25 +1169,25 @@ i32.ge_s if i32.const 0 - local.set $2 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $1 i32.const 10 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.add - local.get $6 - local.get $0 local.get $2 + local.get $0 + local.get $1 i32.lt_s select - local.set $6 - local.get $2 + local.set $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|1 end end @@ -1209,7 +1210,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 10 i32.ne if @@ -1220,7 +1221,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $2 i32.const 28 i32.ne if @@ -1276,6 +1277,8 @@ local.tee $0 i32.const 0 i32.store + i32.const 0 + local.set $1 local.get $0 call $for/Ref#constructor local.tee $0 @@ -1283,10 +1286,10 @@ loop $for-loop|08 local.get $0 if - local.get $8 + local.get $1 i32.const 1 i32.add - local.tee $8 + local.tee $1 i32.const 10 i32.eq if @@ -1301,7 +1304,7 @@ br $for-loop|08 end end - local.get $8 + local.get $1 i32.const 10 i32.ne if @@ -1337,6 +1340,8 @@ local.tee $0 i32.const 0 i32.store + i32.const 0 + local.set $1 local.get $0 call $for/Ref#constructor i32.store @@ -1348,10 +1353,10 @@ call $for/Ref#constructor if block $for-break011 - local.get $9 + local.get $1 i32.const 1 i32.add - local.tee $9 + local.tee $1 i32.const 10 i32.eq if @@ -1367,7 +1372,7 @@ end end end - local.get $9 + local.get $1 i32.const 10 i32.ne if @@ -1682,8 +1687,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1729,19 +1734,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1751,22 +1756,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17892 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1780,7 +1785,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1792,7 +1797,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1800,15 +1805,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1816,7 +1821,7 @@ else i32.const 1472 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1280 @@ -1826,7 +1831,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1476 @@ -1844,25 +1849,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index 4f4a6816c9..61dbfbe950 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -712,43 +712,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18220 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -759,221 +832,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18220 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18220 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18220 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18220 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1487,19 +1485,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1509,22 +1507,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18220 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1538,7 +1536,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1550,7 +1548,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1558,15 +1556,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1574,7 +1572,7 @@ else i32.const 1760 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1472 @@ -1584,7 +1582,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1764 @@ -1602,25 +1600,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index 97171dcb41..d018580cd3 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -250,8 +250,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -875,43 +873,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18580 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -922,221 +993,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18580 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1664 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18580 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1664 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18580 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18580 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1936 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1936 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1528,28 +1524,29 @@ i32.const 20 i32.add local.tee $0 + local.tee $2 i32.const 0 i32.store8 - local.get $0 + local.get $2 i32.const 4 i32.add - local.tee $2 + local.tee $4 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $4 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $4 i32.const 3 i32.sub i32.const 0 diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 36336061a7..8e8d5fb2f4 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -677,43 +677,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17900 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -724,221 +797,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17900 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17900 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17900 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17900 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1290,8 +1288,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1369,19 +1367,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1391,22 +1389,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17900 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1420,7 +1418,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1432,7 +1430,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1440,15 +1438,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1456,7 +1454,7 @@ else i32.const 1472 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1466,7 +1464,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1476 @@ -1484,25 +1482,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index 6b39a6a550..395b714751 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -1922,10 +1922,10 @@ local.set $0 local.get $1 call $~lib/rt/tlsf/prepareSize - local.tee $5 + local.tee $3 local.get $0 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and local.tee $6 @@ -1933,7 +1933,7 @@ if local.get $2 local.get $0 - local.get $5 + local.get $3 call $~lib/rt/tlsf/prepareBlock br $__inlined_func$~lib/rt/tlsf/reallocateBlock end @@ -1945,13 +1945,13 @@ i32.const -4 i32.and i32.add - local.tee $4 + local.tee $5 i32.load local.tee $7 i32.const 1 i32.and if - local.get $5 + local.get $3 local.get $6 i32.const 4 i32.add @@ -1963,18 +1963,18 @@ i32.le_u if local.get $2 - local.get $4 + local.get $5 call $~lib/rt/tlsf/removeBlock local.get $0 local.get $6 - local.get $3 + local.get $4 i32.const 3 i32.and i32.or i32.store local.get $2 local.get $0 - local.get $5 + local.get $3 call $~lib/rt/tlsf/prepareBlock br $__inlined_func$~lib/rt/tlsf/reallocateBlock end diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index 6207fafec0..c51c8286ee 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -192,8 +192,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -817,43 +815,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17868 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -864,221 +935,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17868 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17868 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17868 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index e9ecb7d72c..ec3a36d439 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -218,8 +218,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -843,43 +841,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18596 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -890,221 +961,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18596 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18596 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18596 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18596 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2430,10 +2426,9 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 memory.size diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index e2aa8ab8b9..4ac173f572 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -699,43 +699,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18068 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -746,221 +819,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18068 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1296 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18068 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1296 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18068 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18068 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1568 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1568 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1343,10 +1341,9 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $2 - local.tee $3 i64.const 0 i64.store - local.get $3 + local.get $2 i32.const 0 i32.store offset=8 local.get $2 @@ -1357,15 +1354,15 @@ i32.store offset=4 i32.const 1164 i32.load - local.set $2 + local.set $3 loop $for-loop|0 - local.get $2 + local.get $3 i32.const 1164 i32.load - local.tee $3 + local.tee $2 local.get $2 local.get $3 - i32.lt_s + i32.gt_s select local.get $0 i32.gt_s @@ -1425,7 +1422,6 @@ global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1434,14 +1430,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store global.get $~lib/memory/__stack_pointer @@ -1449,12 +1445,13 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 12 @@ -1504,19 +1501,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1526,22 +1523,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18068 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1555,7 +1552,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1567,7 +1564,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1575,15 +1572,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1591,7 +1588,7 @@ else i32.const 1616 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1424 @@ -1601,7 +1598,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1620 @@ -1619,25 +1616,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index 3618cf24e1..c7349b3c06 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -686,43 +686,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17964 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -733,221 +806,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17964 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1200 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17964 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1200 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17964 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17964 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1472 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1472 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1791,19 +1789,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1813,22 +1811,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17964 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1842,7 +1840,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1854,7 +1852,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1862,15 +1860,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1878,7 +1876,7 @@ else i32.const 1520 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1328 @@ -1888,7 +1886,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1524 @@ -1906,25 +1904,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index e0c252b580..a2b2a2fc4c 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -688,43 +688,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17948 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -735,221 +808,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17948 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17948 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17948 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17948 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1514,19 +1512,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1536,22 +1534,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17948 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1565,7 +1563,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1577,7 +1575,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1585,15 +1583,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1601,7 +1599,7 @@ else i32.const 1504 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1611,7 +1609,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1508 @@ -1629,25 +1627,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index 461373c363..c9e7471807 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -186,8 +186,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -811,43 +809,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18004 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -858,221 +929,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18004 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18004 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18004 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18004 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1475,12 +1471,12 @@ i32.store local.get $0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1456 i32.store - local.get $1 + local.get $0 i32.const 1456 call $byn-split-outlined-A$~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer @@ -1488,7 +1484,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1499,16 +1495,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 local.get $1 + local.get $0 i32.load - local.tee $0 + local.tee $1 i32.store local.get $1 - local.get $0 i32.eqz if i32.const 1488 @@ -1519,11 +1514,12 @@ unreachable end local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 if - local.get $1 local.get $0 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index 3a075ae2cc..1b30edf1b9 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -683,43 +683,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17908 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -730,221 +803,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17908 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17908 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17908 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1261,8 +1259,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1575,19 +1573,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1597,22 +1595,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17908 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1626,7 +1624,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1638,7 +1636,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1646,15 +1644,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1662,7 +1660,7 @@ else i32.const 1488 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1672,7 +1670,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -1690,25 +1688,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index 32c6c86a99..f883c01f4b 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -193,8 +193,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -818,43 +816,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18140 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -865,221 +936,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18140 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18140 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1216 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18140 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18140 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1488 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2413,7 +2409,7 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/rt/itcms/__renew + block $__inlined_func$~lib/rt/itcms/__renew (result i32) local.get $4 i32.const 1 i32.shl @@ -2437,14 +2433,13 @@ local.get $4 i32.lt_u select - local.tee $10 + local.tee $9 local.get $0 i32.load - local.tee $9 - local.tee $3 + local.tee $7 i32.const 20 i32.sub - local.tee $4 + local.tee $3 i32.load i32.const -4 i32.and @@ -2452,38 +2447,40 @@ i32.sub i32.le_u if - local.get $4 - local.get $10 + local.get $3 + local.get $9 i32.store offset=16 + local.get $7 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $10 - local.get $4 + local.get $9 + local.get $3 i32.load offset=12 call $~lib/rt/itcms/__new - local.set $5 - local.get $10 - local.get $4 + local.set $8 + local.get $9 + local.get $3 i32.load offset=16 - local.tee $4 - local.get $4 - local.get $10 + local.tee $3 + local.get $3 + local.get $9 i32.gt_u select - local.set $8 + local.set $10 block $~lib/util/memory/memmove|inlined.0 - local.get $5 + local.get $8 local.tee $4 - local.get $3 + local.get $7 + local.tee $3 i32.eq br_if $~lib/util/memory/memmove|inlined.0 local.get $3 local.get $4 i32.sub - local.get $8 + local.get $10 i32.sub i32.const 0 - local.get $8 + local.get $10 i32.const 1 i32.shl i32.sub @@ -2491,7 +2488,7 @@ if local.get $4 local.get $3 - local.get $8 + local.get $10 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end @@ -2512,32 +2509,32 @@ i32.const 7 i32.and if - local.get $8 + local.get $10 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $8 + local.get $10 i32.const 1 i32.sub - local.set $8 + local.set $10 local.get $4 - local.tee $6 + local.tee $5 i32.const 1 i32.add local.set $4 local.get $3 - local.tee $7 + local.tee $6 i32.const 1 i32.add local.set $3 + local.get $5 local.get $6 - local.get $7 i32.load8_u i32.store8 br $while-continue|0 end end loop $while-continue|1 - local.get $8 + local.get $10 i32.const 8 i32.ge_u if @@ -2545,10 +2542,10 @@ local.get $3 i64.load i64.store - local.get $8 + local.get $10 i32.const 8 i32.sub - local.set $8 + local.set $10 local.get $4 i32.const 8 i32.add @@ -2562,26 +2559,26 @@ end end loop $while-continue|2 - local.get $8 + local.get $10 if local.get $4 - local.tee $6 + local.tee $5 i32.const 1 i32.add local.set $4 local.get $3 - local.tee $7 + local.tee $6 i32.const 1 i32.add local.set $3 + local.get $5 local.get $6 - local.get $7 i32.load8_u i32.store8 - local.get $8 + local.get $10 i32.const 1 i32.sub - local.set $8 + local.set $10 br $while-continue|2 end end @@ -2596,22 +2593,22 @@ if loop $while-continue|3 local.get $4 - local.get $8 + local.get $10 i32.add i32.const 7 i32.and if - local.get $8 + local.get $10 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $8 + local.get $10 i32.const 1 i32.sub - local.tee $8 + local.tee $10 local.get $4 i32.add local.get $3 - local.get $8 + local.get $10 i32.add i32.load8_u i32.store8 @@ -2619,18 +2616,18 @@ end end loop $while-continue|4 - local.get $8 + local.get $10 i32.const 8 i32.ge_u if - local.get $8 + local.get $10 i32.const 8 i32.sub - local.tee $8 + local.tee $10 local.get $4 i32.add local.get $3 - local.get $8 + local.get $10 i32.add i64.load i64.store @@ -2639,16 +2636,16 @@ end end loop $while-continue|5 - local.get $8 + local.get $10 if - local.get $8 + local.get $10 i32.const 1 i32.sub - local.tee $8 + local.tee $10 local.get $4 i32.add local.get $3 - local.get $8 + local.get $10 i32.add i32.load8_u i32.store8 @@ -2657,11 +2654,10 @@ end end end - local.get $5 - local.set $3 + local.get $8 end - local.get $3 - local.get $9 + local.tee $3 + local.get $7 i32.ne if local.get $0 @@ -2679,7 +2675,7 @@ end end local.get $0 - local.get $10 + local.get $9 i32.store offset=8 end local.get $0 diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index e1459dc158..9d588d0b05 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -674,43 +674,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17908 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -721,221 +794,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17908 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17908 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17908 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1362,8 +1360,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1409,19 +1407,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1431,22 +1429,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17908 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1460,7 +1458,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1472,7 +1470,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1480,15 +1478,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1496,7 +1494,7 @@ else i32.const 1488 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1296 @@ -1506,7 +1504,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -1524,25 +1522,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 9a3e088a52..874b65e297 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -678,43 +678,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18060 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -725,221 +798,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18060 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18060 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18060 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18060 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1314,10 +1312,9 @@ call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1357,12 +1354,11 @@ local.get $0 i32.store call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1374,29 +1370,29 @@ i32.const 0 i32.store block $__inlined_func$~lib/rt/__instanceof (result i32) - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1632 i32.load i32.le_u if loop $do-loop|0 i32.const 1 - local.get $0 + local.get $1 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof drop - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $0 + local.tee $1 br_if $do-loop|0 end end @@ -1412,20 +1408,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1434,11 +1429,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store block $__inlined_func$~lib/rt/__instanceof15 (result i32) - local.get $1 + local.get $0 i32.eqz if i32.const 1456 @@ -1448,32 +1443,32 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1632 i32.load i32.le_u if loop $do-loop|017 i32.const 1 - local.get $0 + local.get $1 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof15 drop - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $0 + local.tee $1 br_if $do-loop|017 end end @@ -1489,20 +1484,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 8 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1562,10 +1556,9 @@ call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1747,19 +1740,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1769,22 +1762,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18060 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1798,7 +1791,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1810,7 +1803,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1818,15 +1811,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1834,7 +1827,7 @@ else i32.const 1632 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1844,7 +1837,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1636 @@ -1862,25 +1855,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index 0cdb707fd5..63c45a9f98 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -714,43 +714,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17884 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -761,221 +834,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17884 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17884 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17884 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17884 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1542,19 +1540,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1564,22 +1562,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17884 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1593,7 +1591,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1605,7 +1603,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1613,15 +1611,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1629,7 +1627,7 @@ else i32.const 1440 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1639,7 +1637,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -1657,25 +1655,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 77d2283b5f..da1ff5920f 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -721,43 +721,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 21068 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -768,221 +841,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 21068 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 21068 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 21068 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 21068 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3626,15 +3624,14 @@ global.set $~lib/rt/itcms/fromSpace global.get $number/a call $~lib/number/I32#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 3232 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3232 call $~lib/string/String.__eq i32.eqz @@ -4026,19 +4023,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -4048,22 +4045,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 21068 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -4077,7 +4074,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -4089,7 +4086,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -4097,15 +4094,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -4113,7 +4110,7 @@ else i32.const 4656 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1472 @@ -4123,7 +4120,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 4660 @@ -4141,25 +4138,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index f005203f3c..6d37812722 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -150,8 +150,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -870,43 +868,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18156 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -917,177 +988,102 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18156 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1104 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18156 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1104 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - i32.const 18156 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3090,7 +3086,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3154,7 +3150,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -3462,7 +3457,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3520,7 +3515,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=16 local.get $1 diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index c82e6ad09d..1deb071c38 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -686,43 +686,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17868 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -733,221 +806,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17868 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17868 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17868 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1386,19 +1384,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1408,22 +1406,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17868 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1437,7 +1435,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1449,7 +1447,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1457,15 +1455,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1473,7 +1471,7 @@ else i32.const 1440 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1483,7 +1481,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -1501,25 +1499,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/possibly-null.optimized.wat b/tests/compiler/possibly-null.optimized.wat index 09e3f71e96..42cc8af75c 100644 --- a/tests/compiler/possibly-null.optimized.wat +++ b/tests/compiler/possibly-null.optimized.wat @@ -1,20 +1,20 @@ (module - (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17408)) (memory $0 0) (export "memory" (memory $0)) (export "testTrue" (func $export:possibly-null/testTrue)) - (export "testFalseElse" (func $export:possibly-null/testFalseElse)) - (export "testFalseContinuation" (func $export:possibly-null/testFalseElse)) + (export "testFalseElse" (func $export:possibly-null/testTrue)) + (export "testFalseContinuation" (func $export:possibly-null/testTrue)) (export "testNeNull" (func $export:possibly-null/testTrue)) - (export "testEqNullElse" (func $export:possibly-null/testFalseElse)) - (export "testEqNullContinuation" (func $export:possibly-null/testFalseElse)) + (export "testEqNullElse" (func $export:possibly-null/testTrue)) + (export "testEqNullContinuation" (func $export:possibly-null/testTrue)) (export "testNotEqNull" (func $export:possibly-null/testTrue)) - (export "testNotNeNullElse" (func $export:possibly-null/testFalseElse)) - (export "testNotNeNullContinuation" (func $export:possibly-null/testFalseElse)) + (export "testNotNeNullElse" (func $export:possibly-null/testTrue)) + (export "testNotNeNullContinuation" (func $export:possibly-null/testTrue)) (export "testWhile" (func $export:possibly-null/testWhile)) (export "testWhile2" (func $export:possibly-null/testWhile2)) (export "testWhile3" (func $export:possibly-null/testWhile3)) @@ -50,35 +50,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $export:possibly-null/testFalseElse (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1024 - i32.lt_s - if - i32.const 17440 - i32.const 17488 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $__inlined_func$possibly-null/testFalseElse - local.get $0 - i32.eqz - br_if $__inlined_func$possibly-null/testFalseElse - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $export:possibly-null/testWhile (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -190,7 +161,6 @@ ) (func $export:possibly-null/testLogicalAndMulti (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -208,10 +178,9 @@ end global.get $~lib/memory/__stack_pointer local.tee $2 - local.tee $3 local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 i32.store offset=4 local.get $2 diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 5f738ef3d4..762e26a1d3 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -763,43 +763,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17916 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -810,221 +883,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17916 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17916 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17916 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17916 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1719,19 +1717,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1741,22 +1739,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17916 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1770,7 +1768,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1782,7 +1780,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1790,15 +1788,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1806,7 +1804,7 @@ else i32.const 1488 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1296 @@ -1816,7 +1814,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -1834,25 +1832,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index 795805bc3f..867048c7c1 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -725,43 +725,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17956 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -772,221 +845,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17956 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17956 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17956 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17956 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1428,8 +1426,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1509,19 +1507,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1531,22 +1529,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17956 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1560,7 +1558,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1572,7 +1570,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1580,15 +1578,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1596,7 +1594,7 @@ else i32.const 1536 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1296 @@ -1606,7 +1604,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1540 @@ -1624,25 +1622,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index 31c4a8d5c2..945f8d7e3e 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -204,8 +204,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -829,43 +827,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 19732 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -876,221 +947,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 19732 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 19732 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 19732 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 19732 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2840,63 +2836,63 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $5 i32.const 0 i32.store i32.const 8 - local.set $5 + local.set $7 i32.const 1056 - local.set $1 + local.set $0 block $~lib/util/memory/memmove|inlined.0 i32.const 8 i32.const 0 call $~lib/rt/itcms/__new local.tee $4 - local.tee $0 + local.tee $1 i32.const 1056 i32.eq br_if $~lib/util/memory/memmove|inlined.0 i32.const 1048 - local.get $0 + local.get $1 i32.sub i32.const -16 i32.le_u if - local.get $0 + local.get $1 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end - local.get $0 + local.get $1 i32.const 1056 i32.lt_u if - local.get $0 + local.get $1 i32.const 7 i32.and i32.eqz if loop $while-continue|0 - local.get $0 + local.get $1 i32.const 7 i32.and if - local.get $5 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 + local.get $7 i32.const 1 i32.sub - local.set $5 - local.get $0 + local.set $7 + local.get $1 local.tee $2 i32.const 1 i32.add - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.tee $3 i32.const 1 i32.add - local.set $1 + local.set $0 local.get $2 local.get $3 i32.load8_u @@ -2905,77 +2901,77 @@ end end loop $while-continue|1 - local.get $5 + local.get $7 i32.const 8 i32.ge_u if - local.get $0 local.get $1 + local.get $0 i64.load i64.store - local.get $5 + local.get $7 i32.const 8 i32.sub - local.set $5 - local.get $0 - i32.const 8 - i32.add - local.set $0 + local.set $7 local.get $1 i32.const 8 i32.add local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 br $while-continue|1 end end end loop $while-continue|2 - local.get $5 + local.get $7 if - local.get $0 + local.get $1 local.tee $2 i32.const 1 i32.add - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.tee $3 i32.const 1 i32.add - local.set $1 + local.set $0 local.get $2 local.get $3 i32.load8_u i32.store8 - local.get $5 + local.get $7 i32.const 1 i32.sub - local.set $5 + local.set $7 br $while-continue|2 end end else - local.get $0 + local.get $1 i32.const 7 i32.and i32.eqz if loop $while-continue|3 - local.get $0 - local.get $5 + local.get $1 + local.get $7 i32.add i32.const 7 i32.and if - local.get $5 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 + local.get $7 i32.const 1 i32.sub - local.tee $5 - local.get $0 + local.tee $7 + local.get $1 i32.add - local.get $5 + local.get $7 i32.const 1056 i32.add i32.load8_u @@ -2984,17 +2980,17 @@ end end loop $while-continue|4 - local.get $5 + local.get $7 i32.const 8 i32.ge_u if - local.get $5 + local.get $7 i32.const 8 i32.sub - local.tee $5 - local.get $0 + local.tee $7 + local.get $1 i32.add - local.get $5 + local.get $7 i32.const 1056 i32.add i64.load @@ -3004,15 +3000,15 @@ end end loop $while-continue|5 - local.get $5 + local.get $7 if - local.get $5 + local.get $7 i32.const 1 i32.sub - local.tee $5 - local.get $0 + local.tee $7 + local.get $1 i32.add - local.get $5 + local.get $7 i32.const 1056 i32.add i32.load8_u @@ -3022,7 +3018,7 @@ end end end - local.get $7 + local.get $5 local.get $4 i32.store i32.const 16 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index e81549e85a..13599adce3 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -1016,43 +1016,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 27676 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1063,221 +1136,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 27676 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 27676 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 27676 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 27676 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1776 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1776 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3913,7 +3911,6 @@ (func $start:resolve-binary (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -3925,13 +3922,12 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 local.get $0 @@ -4877,10 +4873,9 @@ i32.const 10880 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 10880 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10880 i32.store offset=4 i32.const 10880 @@ -4897,12 +4892,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 10912 @@ -4927,12 +4921,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 10944 @@ -4957,12 +4950,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 10976 @@ -4987,12 +4979,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11008 @@ -5017,12 +5008,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11040 @@ -5047,12 +5037,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11072 @@ -5077,12 +5066,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11104 @@ -5107,12 +5095,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11136 @@ -5137,12 +5124,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11168 @@ -5167,12 +5153,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11200 @@ -5197,12 +5182,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11232 @@ -5231,15 +5215,13 @@ global.set $resolve-binary/bar2 global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/bar i32.store offset=4 - local.get $1 + local.get $0 global.get $resolve-binary/bar2 local.tee $1 - local.tee $2 i32.store offset=8 - local.get $2 + local.get $1 global.set $resolve-binary/bar local.get $0 global.get $resolve-binary/bar @@ -5321,19 +5303,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -5343,22 +5325,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 27676 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -5372,7 +5354,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -5384,7 +5366,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -5392,15 +5374,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -5408,7 +5390,7 @@ else i32.const 11248 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1632 @@ -5418,7 +5400,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 11252 @@ -5436,25 +5418,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 6755ce6624..c7e770b755 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -256,8 +256,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -881,43 +879,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 21236 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -928,221 +999,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 21236 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 21236 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1232 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 21236 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 21236 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1504 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1504 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4052,29 +4048,29 @@ (func $~lib/number/U8#toString (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - block $__inlined_func$~lib/util/number/utoa32 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4852 - i32.lt_s - if - i32.const 21264 - i32.const 21312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4852 + i32.lt_s + if + i32.const 21264 + i32.const 21312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa32 local.get $0 i32.const 255 i32.and - local.tee $2 + local.tee $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -4082,56 +4078,57 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3536 + local.set $0 br $__inlined_func$~lib/util/number/utoa32 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 1 @@ -4139,15 +4136,15 @@ local.tee $0 i32.store local.get $0 - local.get $2 local.get $1 + local.get $2 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end + local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 @@ -4201,10 +4198,9 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 memory.size diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index 93b60f444d..2e76ebebed 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -714,43 +714,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 19844 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -761,221 +834,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 19844 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1520 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 19844 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1520 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 19844 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 19844 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1792 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1792 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1622,7 +1620,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1721,7 +1718,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1424 - local.set $0 + local.set $3 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -1732,82 +1729,82 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $3 - select local.tee $1 + select + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.get $3 + local.get $1 i32.add local.tee $2 i32.const 1 i32.shl call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.store loop $while-continue|0 - local.get $1 + local.get $0 i32.const 10000 i32.ge_u if - local.get $1 + local.get $0 i32.const 10000 i32.rem_u local.set $4 - local.get $1 + local.get $0 i32.const 10000 i32.div_u - local.set $1 + local.set $0 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl - local.get $0 + local.get $3 i32.add local.get $4 i32.const 100 @@ -1832,7 +1829,7 @@ br $while-continue|0 end end - local.get $1 + local.get $0 i32.const 100 i32.ge_u if @@ -1842,9 +1839,9 @@ local.tee $2 i32.const 1 i32.shl - local.get $0 + local.get $3 i32.add - local.get $1 + local.get $0 i32.const 100 i32.rem_u i32.const 2 @@ -1853,12 +1850,12 @@ i32.add i32.load i32.store - local.get $1 + local.get $0 i32.const 100 i32.div_u - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 10 i32.ge_u if @@ -1867,9 +1864,9 @@ i32.sub i32.const 1 i32.shl - local.get $0 + local.get $3 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl i32.const 1836 @@ -1882,16 +1879,16 @@ i32.sub i32.const 1 i32.shl - local.get $0 + local.get $3 i32.add - local.get $1 + local.get $0 i32.const 48 i32.add i32.store16 end - local.get $3 + local.get $1 if - local.get $0 + local.get $3 i32.const 45 i32.store16 end @@ -1901,31 +1898,36 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $3 i32.store - local.get $1 + local.get $0 i32.const 3408 i32.store offset=4 + i32.const 3408 + local.set $2 i32.const 1 - local.get $0 + local.get $3 i32.const 3408 i32.eq br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $0 + i32.const 3408 + i32.const 0 + local.get $3 + select i32.eqz br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $0 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.const 3404 i32.load i32.const 1 @@ -1933,80 +1935,75 @@ i32.ne br_if $__inlined_func$~lib/string/String.__eq drop - i32.const 3408 - local.set $3 - local.get $0 - local.tee $1 - i32.const 7 - i32.and - i32.eqz - local.get $2 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 - local.get $1 - i64.load - local.get $3 - i64.load - i64.eq - if - local.get $1 - i32.const 8 - i32.add - local.set $1 + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $3 + i32.const 7 + i32.and + i32.eqz + local.get $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 local.get $3 - i32.const 8 - i32.add - local.set $3 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + i64.load + local.get $2 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end end end - end - block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 - local.tee $2 + local.tee $1 i32.const 1 i32.sub local.set $0 - local.get $2 + local.get $1 if - local.get $1 + local.get $2 i32.load16_u - local.tee $4 + local.tee $1 local.get $3 i32.load16_u - local.tee $5 - i32.sub - local.set $2 - local.get $4 - local.get $5 + local.tee $4 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl - local.get $1 - i32.const 2 - i32.add - local.set $1 + if + local.get $4 + local.get $1 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end local.get $3 i32.const 2 i32.add local.set $3 + local.get $2 + i32.const 2 + i32.add + local.set $2 br $while-continue|1 end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz end i32.eqz @@ -2039,19 +2036,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -2061,22 +2058,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 19844 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -2090,7 +2087,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -2102,7 +2099,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -2110,15 +2107,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -2126,7 +2123,7 @@ else i32.const 3424 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1648 @@ -2136,7 +2133,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3428 @@ -2154,25 +2151,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index bce4c45c94..b1181d460c 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -683,43 +683,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17876 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -730,221 +803,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17876 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17876 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17876 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17876 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1408,7 +1406,6 @@ ) (func $export:resolve-nested/Outer.Inner.evenInner (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -1425,7 +1422,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 local.tee $6 local.get $0 i32.store @@ -1444,14 +1440,13 @@ local.get $6 local.get $5 i32.store offset=20 - local.get $7 + local.get $6 i32.const 24 i32.add global.set $~lib/memory/__stack_pointer ) (func $export:resolve-nested/Outer.inner (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -1468,7 +1463,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 local.tee $5 local.get $0 i32.store @@ -1484,14 +1478,13 @@ local.get $5 local.get $4 i32.store offset=16 - local.get $6 + local.get $5 i32.const 20 i32.add global.set $~lib/memory/__stack_pointer ) (func $export:resolve-nested/outer (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -1508,7 +1501,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 local.tee $3 local.get $0 i32.store @@ -1518,7 +1510,7 @@ local.get $3 local.get $2 i32.store offset=8 - local.get $4 + local.get $3 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -1531,19 +1523,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1553,22 +1545,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17876 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1582,7 +1574,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1594,7 +1586,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1602,15 +1594,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1618,7 +1610,7 @@ else i32.const 1440 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1628,7 +1620,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -1646,25 +1638,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index 2117dcdeab..1c8e9ee99c 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -679,43 +679,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17860 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -726,221 +799,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17860 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17860 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17860 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17860 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1030,7 +1028,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1086,10 +1083,9 @@ call $resolve-new/Foo#constructor local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1311,8 +1307,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1358,19 +1354,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1380,22 +1376,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17860 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1409,7 +1405,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1421,7 +1417,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1429,15 +1425,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1445,7 +1441,7 @@ else i32.const 1440 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1455,7 +1451,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -1473,25 +1469,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index f654965331..f985cf692e 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -714,43 +714,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 20100 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -761,221 +834,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 20100 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20100 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 20100 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 20100 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1998,10 +1996,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3232 i32.store offset=4 local.get $0 @@ -2216,7 +2213,6 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2225,16 +2221,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 4 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 6 i32.store global.get $~lib/memory/__stack_pointer @@ -2242,8 +2238,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load call $~lib/number/I32#toString local.set $0 @@ -2308,19 +2305,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -2330,22 +2327,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 20100 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -2359,7 +2356,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -2371,7 +2368,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -2379,15 +2376,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -2395,7 +2392,7 @@ else i32.const 3680 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1472 @@ -2405,7 +2402,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3684 @@ -2423,25 +2420,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 9f9969e0f9..60366b0d14 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -718,43 +718,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 21028 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -765,221 +838,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 21028 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 21028 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 21028 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 21028 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1808,8 +1806,8 @@ (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i32) + (local $6 i32) + (local $7 i64) (local $8 i32) (local $9 i64) (local $10 i32) @@ -1833,7 +1831,7 @@ i64.sub local.tee $12 i64.and - local.set $6 + local.set $7 local.get $1 local.get $0 i64.shr_u @@ -1910,7 +1908,7 @@ local.get $5 i32.const 1000000000 i32.div_u - local.set $7 + local.set $6 local.get $5 i32.const 1000000000 i32.rem_u @@ -1920,7 +1918,7 @@ local.get $5 i32.const 100000000 i32.div_u - local.set $7 + local.set $6 local.get $5 i32.const 100000000 i32.rem_u @@ -1930,7 +1928,7 @@ local.get $5 i32.const 10000000 i32.div_u - local.set $7 + local.set $6 local.get $5 i32.const 10000000 i32.rem_u @@ -1940,7 +1938,7 @@ local.get $5 i32.const 1000000 i32.div_u - local.set $7 + local.set $6 local.get $5 i32.const 1000000 i32.rem_u @@ -1950,7 +1948,7 @@ local.get $5 i32.const 100000 i32.div_u - local.set $7 + local.set $6 local.get $5 i32.const 100000 i32.rem_u @@ -1960,7 +1958,7 @@ local.get $5 i32.const 10000 i32.div_u - local.set $7 + local.set $6 local.get $5 i32.const 10000 i32.rem_u @@ -1970,7 +1968,7 @@ local.get $5 i32.const 1000 i32.div_u - local.set $7 + local.set $6 local.get $5 i32.const 1000 i32.rem_u @@ -1980,7 +1978,7 @@ local.get $5 i32.const 100 i32.div_u - local.set $7 + local.set $6 local.get $5 i32.const 100 i32.rem_u @@ -1990,7 +1988,7 @@ local.get $5 i32.const 10 i32.div_u - local.set $7 + local.set $6 local.get $5 i32.const 10 i32.rem_u @@ -1998,16 +1996,16 @@ br $break|1 end local.get $5 - local.set $7 + local.set $6 i32.const 0 local.set $5 br $break|1 end i32.const 0 - local.set $7 + local.set $6 end local.get $4 - local.get $7 + local.get $6 i32.or if local.get $4 @@ -2020,7 +2018,7 @@ i32.shl i32.const 3472 i32.add - local.get $7 + local.get $6 i32.const 65535 i32.and i32.const 48 @@ -2031,7 +2029,7 @@ i32.const 1 i32.sub local.set $2 - local.get $6 + local.get $7 local.get $5 i64.extend_i32_u local.get $10 @@ -2081,11 +2079,11 @@ local.get $0 local.get $1 i64.add - local.tee $6 + local.tee $7 local.get $9 i64.sub i64.gt_u - local.get $6 + local.get $7 local.get $9 i64.lt_u i32.or @@ -2118,7 +2116,7 @@ i64.const 10 i64.mul local.set $3 - local.get $6 + local.get $7 i64.const 10 i64.mul local.tee $0 @@ -2158,7 +2156,7 @@ local.get $0 local.get $12 i64.and - local.tee $6 + local.tee $7 i64.le_u br_if $while-continue|4 end @@ -2166,7 +2164,7 @@ global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $6 + local.get $7 local.set $0 i32.const 0 local.get $2 @@ -2204,12 +2202,12 @@ local.get $0 local.get $11 i64.add - local.tee $6 + local.tee $7 local.get $1 i64.sub i64.gt_u local.get $1 - local.get $6 + local.get $7 i64.gt_u i32.or else @@ -3108,8 +3106,6 @@ (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) local.get $1 i32.eqz if @@ -3128,17 +3124,17 @@ local.get $0 local.get $1 i32.add - local.tee $3 + local.tee $2 i32.const 21 i32.le_s local.get $0 - local.get $3 + local.get $2 i32.le_s i32.and if (result i32) loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -3155,26 +3151,26 @@ br $for-loop|0 end end - local.get $3 + local.get $2 i32.const 1 i32.shl i32.const 3472 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $2 i32.const 2 i32.add else - local.get $3 + local.get $2 i32.const 21 i32.le_s - local.get $3 + local.get $2 i32.const 0 i32.gt_s i32.and if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.shl i32.const 3472 @@ -3196,16 +3192,16 @@ i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 0 i32.le_s - local.get $3 + local.get $2 i32.const -6 i32.gt_s i32.and if (result i32) i32.const 2 - local.get $3 + local.get $2 i32.sub local.tee $2 i32.const 1 @@ -3253,7 +3249,7 @@ i32.const 101 i32.store16 i32.const 3476 - local.get $3 + local.get $2 i32.const 1 i32.sub local.tee $0 @@ -3342,19 +3338,19 @@ local.get $1 i32.const 3472 i32.add - local.tee $5 + local.tee $3 i32.const 101 i32.store16 offset=2 - local.get $5 + local.get $3 i32.const 4 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s - local.tee $3 + local.tee $2 if i32.const 0 local.get $1 @@ -3362,6 +3358,7 @@ local.set $1 end local.get $1 + local.get $1 i32.const 100000 i32.lt_u if (result i32) @@ -3407,17 +3404,14 @@ i32.add end end - local.set $4 - local.get $1 - local.get $4 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $5 + local.get $3 i32.const 45 i32.const 43 - local.get $3 + local.get $2 select i32.store16 offset=4 local.get $0 @@ -3474,311 +3468,311 @@ call $byn-split-outlined-A$~lib/rt/itcms/__visit end return - end - local.get $0 - i32.load offset=4 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - (local $1 i64) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i64) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 4644 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 21028 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/pinSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/itcms/toSpace - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - global.set $~lib/rt/itcms/fromSpace - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4644 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - i32.const 3232 - i32.store offset=4 - local.get $0 - i32.const 3232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 5 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4644 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -4 - global.set $~lib/util/number/_K - i32.const 3880 - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 4312 - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 4294967295 - i64.and - local.tee $1 - i64.const 31 - i64.shl - local.set $4 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 - i64.const 31 - i64.shl - local.get $1 - i64.const 31 - i64.shl - local.get $1 - i64.const 10 - i64.shl - i64.const 32 - i64.shr_u - i64.add - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - i64.const 4294967295 - i64.and - local.get $3 - i64.const 10 - i64.shl - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.set $5 - local.get $3 - i64.const 31 - i64.shl - local.get $4 - i64.const 32 - i64.shr_u - i64.add - local.get $4 - i64.const 4294967295 - i64.and - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $5 - global.get $~lib/util/number/_exp_pow - i32.const 1 - i32.add - local.get $5 - local.get $3 - i64.const 2147483647 - i64.mul - local.get $1 - i64.const 2147483647 - i64.mul - local.get $1 - i64.const 4294966784 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 4294966784 - i64.mul - local.get $1 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - call $~lib/util/number/genDigits - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - i32.const 1 - i32.shl - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 3472 - local.get $0 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store + end local.get $0 - i32.const 4464 - i32.store offset=4 - local.get $2 - i32.const 4464 - call $~lib/string/String.__eq - i32.eqz + i32.load offset=4 + local.tee $0 if - i32.const 0 - i32.const 3264 - i32.const 13 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit end - i32.const 1 - i32.const 4496 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 24 + return + end + unreachable + ) + (func $~start + (local $0 i32) + (local $1 i64) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 f64) + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4644 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 21028 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4560 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 4 - i32.ne - if + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/pinSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/toSpace + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/fromSpace + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4644 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 3264 - i32.const 35 + i32.store + local.get $0 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4528 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 3 - i32.ne - if + i32.const 1 + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3232 + i32.store offset=4 + local.get $0 + i32.const 3232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4644 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3264 - i32.const 43 + i32.store + i32.const -4 + global.set $~lib/util/number/_K + i32.const 3880 + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 4312 + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $2 + i64.const 4294967295 + i64.and + local.tee $3 + i64.const 31 + i64.shl + local.set $1 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $2 + i64.const 31 + i64.shl + local.get $1 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + i64.const 4294967295 + i64.and + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $2 + i64.const 31 + i64.shl + local.get $3 + i64.const 31 + i64.shl + local.get $3 + i64.const 10 + i64.shl + i64.const 32 + i64.shr_u + i64.add + local.tee $1 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + i64.const 4294967295 + i64.and + local.get $2 + i64.const 10 + i64.shl + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $1 + global.get $~lib/util/number/_exp_pow i32.const 1 - call $~lib/builtins/abort - unreachable + i32.add + local.get $1 + local.get $2 + i64.const 2147483647 + i64.mul + local.get $3 + i64.const 2147483647 + i64.mul + local.get $3 + i64.const 4294966784 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $1 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + i64.const 4294966784 + i64.mul + local.get $1 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + call $~lib/util/number/genDigits + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + i32.const 1 + i32.shl + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + i32.const 3472 + local.get $0 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $4 + i32.store + local.get $0 + i32.const 4464 + i32.store offset=4 + local.get $4 + i32.const 4464 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4496 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4560 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4528 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return end i32.const 21056 i32.const 21104 @@ -3795,19 +3789,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -3817,22 +3811,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 21028 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -3846,7 +3840,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -3858,7 +3852,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -3866,15 +3860,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -3882,7 +3876,7 @@ else i32.const 4608 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1472 @@ -3892,7 +3886,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 4612 @@ -3910,25 +3904,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 2aa5bcef67..1de537e155 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -734,43 +734,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 20156 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -781,221 +854,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 20156 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20156 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 20156 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 20156 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1616 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1969,7 +1967,6 @@ (func $start:resolve-unary (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -2025,10 +2022,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3232 i32.store offset=4 local.get $0 @@ -2272,10 +2268,9 @@ i32.const 3488 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3488 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store offset=4 i32.const 3488 @@ -2482,10 +2477,9 @@ i32.const 3616 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3616 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store offset=4 i32.const 3616 @@ -2527,12 +2521,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-unary/bar - local.tee $2 + local.tee $1 i32.store + local.get $0 local.get $1 - local.get $2 i32.store offset=12 local.get $0 i32.const 3680 @@ -2557,12 +2550,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-unary/bar - local.tee $2 + local.tee $1 i32.store + local.get $0 local.get $1 - local.get $2 i32.store offset=12 local.get $0 i32.const 3712 @@ -2606,19 +2598,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -2628,22 +2620,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 20156 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -2657,7 +2649,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -2669,7 +2661,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -2677,15 +2669,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -2693,7 +2685,7 @@ else i32.const 3728 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1472 @@ -2703,7 +2695,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3732 @@ -2721,25 +2713,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index a86f10a5ec..8233aacacd 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -677,43 +677,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17908 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -724,236 +797,161 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17908 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total + global.get $rt/finalize/expect + local.get $0 + i32.const 20 + i32.add i32.ne if i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 + i32.const 1392 + i32.const 6 + i32.const 3 call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $rt/finalize/ran local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17908 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total - global.get $rt/finalize/expect + local.set $2 local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1392 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 15 + i32.and i32.const 1 - global.set $rt/finalize/ran local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17908 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1261,8 +1259,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1390,19 +1388,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1412,22 +1410,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17908 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1441,7 +1439,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1453,7 +1451,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1461,15 +1459,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1477,7 +1475,7 @@ else i32.const 1488 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1487,7 +1485,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -1505,25 +1503,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 30eceb3bbb..119ffdb6b3 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -717,43 +717,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17940 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -764,221 +837,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17940 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17940 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17940 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17940 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -2107,19 +2105,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -2129,22 +2127,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17940 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -2158,7 +2156,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -2170,7 +2168,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -2178,15 +2176,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -2194,7 +2192,7 @@ else i32.const 1504 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -2204,7 +2202,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1508 @@ -2222,25 +2220,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index 5b9b51a85e..fe98d1636f 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -197,8 +197,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $1 @@ -854,11 +852,11 @@ if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -927,11 +925,11 @@ local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1073,8 +1071,7 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.tee $1 - local.get $1 + local.get $0 i32.store offset=4 local.get $0 local.get $0 diff --git a/tests/compiler/rt/runtime-minimal-export.optimized.wat b/tests/compiler/rt/runtime-minimal-export.optimized.wat index d65e191f15..b2722ae95b 100644 --- a/tests/compiler/rt/runtime-minimal-export.optimized.wat +++ b/tests/compiler/rt/runtime-minimal-export.optimized.wat @@ -1301,7 +1301,7 @@ local.get $0 i32.const 4 i32.add - local.tee $6 + local.tee $0 i32.const 1484 i32.ge_u if @@ -1311,15 +1311,15 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $6 + local.get $0 i32.const 4 i32.sub local.set $4 - local.get $6 + local.get $0 i32.const 15 i32.and i32.const 1 - local.get $6 + local.get $0 select if (result i32) i32.const 1 diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 7dcbf7b5d6..57aaddd0cc 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -1983,7 +1983,7 @@ end local.get $1 i32.load16_u offset=6 - local.tee $3 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 @@ -1997,7 +1997,7 @@ end local.get $1 i32.load16_u offset=2 - local.tee $4 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -2015,7 +2015,7 @@ local.get $5 i32.store i32.const 1144 - local.get $4 + local.get $3 i32.const 8 i32.shl local.get $6 @@ -2024,7 +2024,7 @@ i32.const 16 i32.shl i32.or - local.get $3 + local.get $4 i32.const 24 i32.shl i32.or @@ -2051,26 +2051,27 @@ end local.get $1 local.tee $2 + local.tee $3 + local.get $1 i32.const 20 i32.sub i32.load offset=16 - local.get $2 i32.add local.set $4 i32.const 0 - local.set $3 + local.set $1 loop $while-continue|0 - local.get $2 + local.get $3 local.get $4 i32.lt_u if - local.get $2 + local.get $3 i32.load16_u local.tee $6 i32.const 128 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 1 i32.add else @@ -2078,7 +2079,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 2 i32.add else @@ -2088,40 +2089,40 @@ i32.const 55296 i32.eq local.get $4 - local.get $2 + local.get $3 i32.const 2 i32.add i32.gt_u i32.and if - local.get $2 + local.get $3 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $3 + local.get $1 i32.const 4 i32.add - local.set $3 - local.get $2 + local.set $1 + local.get $3 i32.const 4 i32.add - local.set $2 + local.set $3 br $while-continue|0 end end - local.get $3 + local.get $1 i32.const 3 i32.add end end - local.set $3 - local.get $2 + local.set $1 + local.get $3 i32.const 2 i32.add - local.set $2 + local.set $3 br $while-continue|0 end end @@ -2131,18 +2132,18 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $3 + local.get $1 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $5 local.get $2 - call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $5 local.get $3 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $1 i32.ne if i32.const 0 @@ -2153,10 +2154,10 @@ unreachable end i32.const 1136 - local.get $2 + local.get $3 i32.store i32.const 1140 - local.get $3 + local.get $1 i32.store local.get $0 i32.const 1136 @@ -2164,7 +2165,7 @@ i32.const 1144 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2343,8 +2344,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -2378,43 +2377,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 24356 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -2425,177 +2497,102 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 24356 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 4992 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.const 24356 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 4992 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - i32.const 24356 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3754,10 +3751,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4672 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3789,10 +3785,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4752 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3824,10 +3819,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4848 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4100,7 +4094,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4178,47 +4171,47 @@ i32.ne br_if $__inlined_func$~lib/string/String.__eq drop - local.get $1 - local.set $3 - local.get $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $3 - i64.load - i64.eq - if + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $1 + local.set $3 + local.get $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 local.get $2 - i32.const 8 - i32.add - local.set $2 + i64.load local.get $3 - i32.const 8 - i32.add - local.set $3 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-loop|0 + end end end - end - block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $4 @@ -4229,16 +4222,17 @@ if local.get $2 i32.load16_u - local.tee $8 + local.tee $4 local.get $3 i32.load16_u local.tee $7 - i32.sub - local.set $4 - local.get $7 - local.get $8 i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl + if + local.get $4 + local.get $7 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end local.get $2 i32.const 2 i32.add @@ -4251,9 +4245,7 @@ end end i32.const 0 - local.set $4 end - local.get $4 i32.eqz end end diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index c1c74f0155..861b77a3c7 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -820,8 +820,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -1495,43 +1493,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 23284 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1542,177 +1613,102 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 23284 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1344 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.const 23284 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - i32.const 23284 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3722,7 +3718,7 @@ block $folding-inner1 local.get $0 i32.load offset=4 - local.set $3 + local.set $6 local.get $0 i32.load offset=8 local.set $0 @@ -3758,7 +3754,7 @@ i32.eqz if block $__inlined_func$~lib/util/number/utoa32 (result i32) - local.get $3 + local.get $6 i32.load8_u local.set $2 global.get $~lib/memory/__stack_pointer @@ -3865,70 +3861,72 @@ i32.mul i32.const 10 i32.add - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 + local.get $0 local.get $5 - local.get $6 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $0 local.get $6 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $2 i32.add - local.set $1 + local.set $2 local.get $4 if - local.get $1 + local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 6656 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $2 local.get $4 i32.add - local.set $1 + local.set $2 end - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $0 br $for-loop|0 end end local.get $2 - local.get $1 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 local.get $5 + local.get $6 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $2 i32.add - local.tee $1 - i32.gt_s + local.tee $0 + local.get $3 + i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3942,26 +3940,26 @@ i32.const 0 i32.store i32.const 0 - local.get $1 + local.get $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.tee $1 - local.get $0 + local.tee $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u local.tee $4 - local.get $1 + local.get $0 local.get $4 i32.lt_s select - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 0 i32.gt_s select @@ -3970,14 +3968,14 @@ local.set $3 block $__inlined_func$~lib/string/String#substring i32.const 0 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 0 i32.lt_s select i32.const 1 i32.shl - local.tee $1 + local.tee $0 local.get $3 i32.sub local.tee $2 @@ -3995,7 +3993,7 @@ local.get $4 i32.const 1 i32.shl - local.get $1 + local.get $0 i32.eq local.get $3 select @@ -4004,16 +4002,18 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/string/String#substring end global.get $~lib/memory/__stack_pointer local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 local.get $0 + local.get $1 local.get $3 i32.add local.get $2 @@ -4022,8 +4022,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4035,6 +4033,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 return @@ -4078,7 +4078,6 @@ i32.shl local.tee $2 local.get $0 - local.tee $1 i32.const 20 i32.sub i32.load offset=16 @@ -4088,7 +4087,7 @@ i32.shl local.tee $3 i32.add - local.tee $0 + local.tee $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -4096,23 +4095,23 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 - local.set $0 + local.set $1 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 4768 local.get $2 call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $2 i32.add - local.get $1 + local.get $0 local.get $3 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer @@ -4120,7 +4119,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $0 + local.get $1 ) (func $~lib/process/writeString (param $0 i32) (local $1 i32) @@ -4145,7 +4144,7 @@ end local.get $0 i32.load16_u offset=6 - local.tee $2 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -4159,7 +4158,7 @@ end local.get $0 i32.load16_u offset=2 - local.tee $3 + local.tee $2 i32.const 128 i32.ge_u br_if $break|0 @@ -4177,7 +4176,7 @@ local.get $4 i32.store i32.const 6680 - local.get $3 + local.get $2 i32.const 8 i32.shl local.get $5 @@ -4186,7 +4185,7 @@ i32.const 16 i32.shl i32.or - local.get $2 + local.get $3 i32.const 24 i32.shl i32.or @@ -4212,28 +4211,28 @@ return end local.get $0 - local.set $1 local.get $0 + local.tee $1 + local.tee $2 i32.const 20 i32.sub i32.load offset=16 - local.get $0 i32.add local.set $3 i32.const 0 - local.set $2 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $2 local.get $3 i32.lt_u if - local.get $1 + local.get $2 i32.load16_u local.tee $5 i32.const 128 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 1 i32.add else @@ -4241,7 +4240,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 2 i32.add else @@ -4251,40 +4250,40 @@ i32.const 55296 i32.eq local.get $3 - local.get $1 + local.get $2 i32.const 2 i32.add i32.gt_u i32.and if - local.get $1 + local.get $2 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $2 + local.get $0 i32.const 4 i32.add - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $2 + local.get $0 i32.const 3 i32.add end end - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.const 2 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end @@ -4294,18 +4293,18 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $2 + local.get $0 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $1 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $4 local.get $2 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $0 i32.ne if i32.const 0 @@ -4316,10 +4315,10 @@ unreachable end i32.const 6672 - local.get $1 + local.get $2 i32.store i32.const 6676 - local.get $2 + local.get $0 i32.store i32.const 1 i32.const 6672 @@ -4327,7 +4326,7 @@ i32.const 6680 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $1 + local.get $2 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -4472,10 +4471,9 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 - local.tee $2 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 memory.size @@ -4742,13 +4740,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 local.tee $3 - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1472 i32.const 1680 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index fb6eb2fc4d..cbd9541bb0 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -1969,7 +1969,7 @@ end local.get $0 i32.load16_u offset=6 - local.tee $2 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -1983,7 +1983,7 @@ end local.get $0 i32.load16_u offset=2 - local.tee $3 + local.tee $2 i32.const 128 i32.ge_u br_if $break|0 @@ -2001,7 +2001,7 @@ local.get $4 i32.store i32.const 1096 - local.get $3 + local.get $2 i32.const 8 i32.shl local.get $5 @@ -2010,7 +2010,7 @@ i32.const 16 i32.shl i32.or - local.get $2 + local.get $3 i32.const 24 i32.shl i32.or @@ -2036,28 +2036,28 @@ return end local.get $0 - local.set $1 local.get $0 + local.tee $1 + local.tee $2 i32.const 20 i32.sub i32.load offset=16 - local.get $0 i32.add local.set $3 i32.const 0 - local.set $2 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $2 local.get $3 i32.lt_u if - local.get $1 + local.get $2 i32.load16_u local.tee $5 i32.const 128 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 1 i32.add else @@ -2065,7 +2065,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 2 i32.add else @@ -2075,40 +2075,40 @@ i32.const 55296 i32.eq local.get $3 - local.get $1 + local.get $2 i32.const 2 i32.add i32.gt_u i32.and if - local.get $1 + local.get $2 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $2 + local.get $0 i32.const 4 i32.add - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $2 + local.get $0 i32.const 3 i32.add end end - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.const 2 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end @@ -2118,18 +2118,18 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $2 + local.get $0 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $1 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $4 local.get $2 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $0 i32.ne if i32.const 0 @@ -2140,10 +2140,10 @@ unreachable end i32.const 1088 - local.get $1 + local.get $2 i32.store i32.const 1092 - local.get $2 + local.get $0 i32.store i32.const 1 i32.const 1088 @@ -2151,7 +2151,7 @@ i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $1 + local.get $2 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2360,8 +2360,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -2395,43 +2393,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 23788 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -2442,177 +2513,102 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 23788 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 4656 + i32.const 228 + i32.const 20 + call $~lib/wasi/index/abort + unreachable + end + local.get $0 + i32.const 23788 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 4656 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - i32.const 23788 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4595,11 +4591,11 @@ i32.shl i32.add i32.load - local.set $2 + local.set $0 loop $while-continue|0 - local.get $2 + local.get $0 if - local.get $2 + local.get $0 i32.load offset=8 local.tee $4 i32.const 1 @@ -4609,7 +4605,7 @@ else block $__inlined_func$~lib/string/String.__eq (result i32) global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.load local.tee $3 i32.store @@ -4634,7 +4630,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $0 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -4647,7 +4643,7 @@ local.get $3 i32.const 0 local.get $1 - local.get $0 + local.get $2 call $~lib/util/string/compareImpl i32.eqz end @@ -4657,13 +4653,13 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 return end local.get $4 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|0 end end @@ -4716,27 +4712,27 @@ end i32.const 1088 i32.load - local.tee $4 + local.tee $5 i32.const 2 i32.shl local.tee $0 i32.const 1092 i32.load i32.add - local.set $5 + local.set $4 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $5 + local.get $4 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.add call $~lib/bindings/wasi_snapshot_preview1/environ_get local.tee $0 @@ -4752,7 +4748,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4761,95 +4757,94 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $6 i32.store - local.get $2 + local.get $6 if - local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $0 i32.const 3 i32.store offset=4 - local.get $1 + local.get $0 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $6 i32.store offset=8 - local.get $2 + local.get $6 if - local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $0 i32.const 4 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 + local.get $0 i32.store loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_u + local.get $3 + local.get $5 + i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.const 2 i32.shl - local.get $7 + local.get $2 i32.add i32.load - local.tee $0 - local.get $0 - local.get $5 + local.tee $1 + local.get $1 + local.get $4 i32.add - local.get $7 + local.get $2 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $3 + local.tee $6 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store offset=8 - i32.const 0 - local.set $0 - block $__inlined_func$~lib/string/String#indexOf + block $__inlined_func$~lib/string/String#indexOf (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 5168 + i32.store offset=8 + i32.const 0 i32.const 5164 i32.load i32.const 1 i32.shr_u - local.tee $2 + local.tee $7 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf + drop i32.const -1 - local.set $0 - local.get $3 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4858,83 +4853,85 @@ local.tee $8 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf + drop i32.const 0 - local.set $0 + local.set $1 local.get $8 - local.get $2 + local.get $7 i32.sub local.set $8 loop $for-loop|02 - local.get $0 + local.get $1 local.get $8 i32.le_s if - local.get $3 - local.get $0 + local.get $1 + local.get $6 + local.get $1 i32.const 5168 - local.get $2 + local.get $7 call $~lib/util/string/compareImpl i32.eqz br_if $__inlined_func$~lib/string/String#indexOf - local.get $0 + drop + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|02 end end i32.const -1 - local.set $0 end - local.get $0 + local.tee $1 i32.const -1 i32.xor if - local.get $3 + local.get $6 i32.const 0 - local.get $0 + local.get $1 call $~lib/string/String#substring - local.set $2 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.store offset=8 - local.get $3 - local.get $0 + local.get $6 + local.get $1 i32.const 1 i32.add i32.const 2147483647 call $~lib/string/String#substring - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 local.get $1 - local.get $2 + i32.store offset=12 local.get $0 + local.get $7 + local.get $1 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set else global.get $~lib/memory/__stack_pointer i32.const 5200 i32.store offset=12 - local.get $1 - local.get $3 + local.get $0 + local.get $6 i32.const 5200 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set end - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|0 end end - local.get $7 + local.get $2 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 return end i32.const 23808 @@ -4953,8 +4950,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -4966,13 +4961,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i64.const 0 i64.store - local.get $5 + local.get $3 i32.const 0 i32.store offset=8 - local.get $5 + local.get $3 i32.const 1056 i32.store i32.const 1056 @@ -5038,11 +5033,11 @@ i32.const 1088 i32.const 1092 call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get - local.tee $5 + local.tee $3 i32.const 65535 i32.and if - local.get $5 + local.get $3 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 64 @@ -5052,34 +5047,34 @@ end i32.const 1088 i32.load - local.tee $6 + local.tee $3 i32.const 2 i32.shl - local.tee $7 + local.tee $4 i32.const 1092 i32.load i32.add - local.set $8 + local.set $5 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $8 + local.get $5 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $5 - local.get $5 - local.get $7 + local.tee $6 + local.get $4 + local.get $6 i32.add call $~lib/bindings/wasi_snapshot_preview1/args_get - local.tee $7 + local.tee $4 i32.const 65535 i32.and if - local.get $7 + local.get $4 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 71 @@ -5088,49 +5083,49 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $7 + local.tee $4 i32.store loop $for-loop|0 - local.get $2 - local.get $6 + local.get $0 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $6 i32.add i32.load - local.tee $9 - local.get $8 - local.get $9 - i32.add + local.tee $7 local.get $5 + local.get $7 + i32.add + local.get $6 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $9 + local.tee $7 i32.store offset=4 + local.get $4 + local.get $0 local.get $7 - local.get $2 - local.get $9 call $~lib/array/Array<~lib/string/String>#__set - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end - local.get $5 + local.get $6 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $4 global.set $~lib/process/process.argv global.get $~lib/process/process.argv global.set $std-wasi/process/argv @@ -5139,35 +5134,37 @@ i32.store i32.const 4928 call $~lib/console/console.log + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|01 - local.get $2 + local.get $0 local.get $3 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv - local.tee $5 + local.tee $4 i32.store offset=4 - local.get $5 - local.get $3 + local.get $4 + local.get $0 call $~lib/array/Array<~lib/string/String>#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store - local.get $5 + local.get $4 call $~lib/console/console.log - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|01 end end @@ -5176,11 +5173,11 @@ global.get $~lib/process/process.env global.set $std-wasi/process/env global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 global.get $std-wasi/process/env local.tee $3 i32.store - local.get $2 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5189,28 +5186,30 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store local.get $3 i32.load offset=8 - local.set $5 - local.get $2 + local.set $4 + local.get $0 local.get $3 i32.load offset=16 - local.tee $2 - call $~lib/array/Array<~lib/string/String>#constructor local.tee $3 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $5 i32.store + i32.const 0 + local.set $0 loop $for-loop|02 local.get $2 - local.get $4 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $4 + local.get $2 i32.const 12 i32.mul - local.get $5 + local.get $4 i32.add local.tee $6 i32.load offset=8 @@ -5223,7 +5222,7 @@ i32.load local.tee $6 i32.store offset=4 - local.get $3 + local.get $5 local.get $0 local.get $6 call $~lib/array/Array<~lib/string/String>#__set @@ -5232,25 +5231,25 @@ i32.add local.set $0 end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|02 end end - local.get $3 + local.get $5 local.get $0 i32.const 0 call $~lib/array/ensureCapacity - local.get $3 + local.get $5 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 global.set $std-wasi/process/envKeys global.get $~lib/memory/__stack_pointer i32.const 5232 diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 55df33e412..114260b619 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -277,8 +277,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -902,43 +900,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18252 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -949,221 +1020,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18252 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1536 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18252 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1536 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18252 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18252 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1744 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1744 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 576fc82894..6548e7c718 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -890,8 +890,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -1565,43 +1563,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 32036 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1612,177 +1683,102 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 32036 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 32036 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1216 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - i32.const 32036 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3514,34 +3510,32 @@ select local.get $2 i32.shl - local.set $1 + local.set $2 block $__inlined_func$~lib/rt/itcms/__renew local.get $3 - if (result i32) + if local.get $5 i32.const 1 i32.shl - local.tee $2 + local.tee $1 i32.const 1073741820 - local.get $2 + local.get $1 i32.const 1073741820 i32.lt_u select - local.tee $2 - local.get $1 + local.tee $1 + local.get $2 local.get $1 local.get $2 - i32.lt_u + i32.gt_u select - else - local.get $1 + local.set $2 end - local.tee $2 + local.get $2 local.get $4 - local.tee $1 i32.const 20 i32.sub - local.tee $5 + local.tee $3 i32.load i32.const -4 i32.and @@ -3549,28 +3543,28 @@ i32.sub i32.le_u if - local.get $5 + local.get $3 local.get $2 i32.store offset=16 + local.get $4 + local.set $1 br $__inlined_func$~lib/rt/itcms/__renew end local.get $2 - local.get $5 + local.get $3 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $3 - local.get $1 + local.tee $1 + local.get $4 local.get $2 - local.get $5 + local.get $3 i32.load offset=16 - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.gt_u + local.get $3 + i32.lt_u select call $~lib/memory/memory.copy - local.get $3 - local.set $1 end local.get $1 local.get $4 @@ -7939,46 +7933,46 @@ i64.eqz select local.tee $0 + local.get $0 i64.const 33 i64.shr_u - local.get $0 i64.xor i64.const -49064778989728563 i64.mul local.tee $0 + local.get $0 i64.const 33 i64.shr_u - local.get $0 i64.xor i64.const -4265267296055464877 i64.mul local.tee $0 + local.get $0 i64.const 33 i64.shr_u - local.get $0 i64.xor global.set $~lib/math/random_state0_64 global.get $~lib/math/random_state0_64 i64.const -1 i64.xor local.tee $0 + local.get $0 i64.const 33 i64.shr_u - local.get $0 i64.xor i64.const -49064778989728563 i64.mul local.tee $0 + local.get $0 i64.const 33 i64.shr_u - local.get $0 i64.xor i64.const -4265267296055464877 i64.mul local.tee $0 + local.get $0 i64.const 33 i64.shr_u - local.get $0 i64.xor global.set $~lib/math/random_state1_64 i32.const 1 @@ -8077,21 +8071,21 @@ i32.shl local.get $0 i32.add - local.tee $6 - i32.load local.tee $5 + i32.load + local.tee $6 i32.store local.get $3 - local.get $6 + local.get $5 i32.load offset=4 - local.tee $6 + local.tee $5 i32.store offset=4 local.get $6 local.set $3 i32.const 2 global.set $~argumentsLength - local.get $5 local.get $6 + local.get $5 local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -8125,7 +8119,7 @@ i32.const 2 global.set $~argumentsLength local.get $8 - local.get $5 + local.get $3 local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -8152,7 +8146,7 @@ i32.shl local.get $0 i32.add - local.get $5 + local.get $3 i32.store offset=8 loop $while-continue|2 local.get $1 @@ -8167,12 +8161,12 @@ local.get $0 i32.add i32.load - local.tee $5 + local.tee $3 i32.store i32.const 2 global.set $~argumentsLength - local.get $5 local.get $3 + local.get $5 local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -8184,7 +8178,7 @@ i32.shl local.get $0 i32.add - local.get $5 + local.get $3 i32.store offset=4 local.get $6 i32.const 1 @@ -8199,7 +8193,7 @@ i32.shl local.get $0 i32.add - local.get $3 + local.get $5 i32.store offset=4 local.get $7 i32.const 2 @@ -8235,27 +8229,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 + local.get $3 i32.add local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 2 i32.shl local.tee $8 @@ -8269,28 +8263,28 @@ end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $7 - local.get $6 + local.get $2 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -8301,7 +8295,7 @@ if global.get $~lib/memory/__stack_pointer local.tee $7 - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 @@ -8310,7 +8304,7 @@ local.tee $8 i32.store local.get $7 - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 @@ -8335,10 +8329,10 @@ i32.add local.get $8 i32.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 2 @@ -8347,10 +8341,10 @@ i32.add local.get $7 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -8374,8 +8368,8 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) - (local $13 i32) + (local $12 i32) + (local $13 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8392,10 +8386,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i64.const 0 i64.store - local.get $6 + local.get $5 i32.const 0 i32.store offset=8 block $folding-inner0 @@ -8527,43 +8521,43 @@ local.get $1 i32.clz i32.sub - local.tee $6 + local.tee $5 i32.const 2 i32.shl - local.tee $7 + local.tee $6 i32.const 1 i32.shl - local.set $8 + local.set $7 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $8 + local.get $7 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $9 - local.get $7 + local.tee $10 + local.get $6 i32.add - local.set $10 + local.set $11 loop $for-loop|1 + local.get $4 local.get $5 - local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end @@ -8579,46 +8573,48 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $11 + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $4 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $9 i32.const 31 - local.get $8 + local.get $9 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $4 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end + i32.const 0 + local.set $1 loop $while-continue|2 - local.get $1 - local.get $8 + local.get $4 + local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $4 i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 @@ -8632,13 +8628,13 @@ if local.get $0 local.get $6 - local.get $8 + local.get $9 local.get $6 i32.const 31 i32.add local.tee $5 local.get $5 - local.get $8 + local.get $9 i32.gt_s select local.tee $5 @@ -8652,11 +8648,11 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $13 i64.div_u local.get $5 local.get $6 @@ -8666,31 +8662,31 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $13 i64.div_u i64.xor i32.wrap_i64 i32.clz local.set $7 loop $for-loop|3 - local.get $4 + local.get $1 local.get $7 i32.gt_u if - local.get $4 + local.get $1 i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add i32.load - local.tee $13 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 - local.get $4 + local.get $8 + local.get $11 + local.get $1 i32.const 2 i32.shl local.tee $3 @@ -8698,85 +8694,85 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $4 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $10 i32.add i32.const -1 i32.store - local.get $13 + local.get $8 local.set $3 end - local.get $4 + local.get $1 i32.const 1 i32.sub - local.set $4 + local.set $1 br $for-loop|3 end end - local.get $9 + local.get $10 local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $1 i32.add local.get $3 i32.store - local.get $4 - local.get $10 - i32.add local.get $1 + local.get $11 + i32.add + local.get $4 i32.store local.get $6 local.set $3 local.get $5 - local.set $1 - local.get $7 local.set $4 + local.get $7 + local.set $1 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add i32.load - local.tee $1 + local.tee $3 i32.const -1 i32.ne if local.get $0 + local.get $3 local.get $1 - local.get $4 i32.const 2 i32.shl - local.get $10 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $1 i32.const 1 i32.sub - local.set $4 + local.set $1 br $for-loop|4 end end - local.get $11 + local.get $12 call $~lib/rt/tlsf/__free - local.get $9 + local.get $10 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 12 @@ -9114,7 +9110,6 @@ i32.store block $__inlined_func$~lib/string/String#concat local.get $0 - local.tee $2 i32.const 20 i32.sub i32.load offset=16 @@ -9133,7 +9128,7 @@ i32.shl local.tee $4 i32.add - local.tee $0 + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -9141,20 +9136,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $0 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 local.get $2 + local.get $0 local.get $3 call $~lib/memory/memory.copy - local.get $0 + local.get $2 local.get $3 i32.add local.get $1 @@ -9165,7 +9160,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $0 + local.get $2 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -9367,7 +9362,7 @@ (local $7 i32) local.get $0 i32.load offset=4 - local.set $6 + local.set $4 local.get $0 i32.load offset=12 local.set $0 @@ -9393,7 +9388,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -9405,10 +9400,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $7 + local.get $3 i32.eqz if - local.get $6 + local.get $4 i32.load call $~lib/util/number/itoa32 local.set $0 @@ -9419,7 +9414,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 local.get $1 i32.const 20 i32.sub @@ -9432,77 +9427,79 @@ i32.mul i32.const 11 i32.add - local.tee $3 + local.tee $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $4 - local.get $7 - i32.lt_s + local.get $3 + local.get $6 + i32.gt_s if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add - local.get $4 + local.get $6 i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.set $2 + local.set $0 local.get $5 if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add local.get $1 local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 + local.get $0 local.get $5 i32.add - local.set $2 + local.set $0 end - local.get $4 + local.get $6 i32.const 1 i32.add - local.set $4 + local.set $6 br $for-loop|0 end end - local.get $3 - local.get $2 + local.get $7 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add - local.get $7 + local.get $3 i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if + local.get $2 local.get $0 - local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -9515,6 +9512,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + local.set $0 end local.get $0 ) @@ -9592,7 +9591,7 @@ (local $7 i32) local.get $0 i32.load offset=4 - local.set $6 + local.set $4 local.get $0 i32.load offset=12 local.set $0 @@ -9618,7 +9617,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -9630,10 +9629,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $7 + local.get $3 i32.eqz if - local.get $6 + local.get $4 i32.load call $~lib/util/number/utoa32 local.set $0 @@ -9644,7 +9643,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 local.get $1 i32.const 20 i32.sub @@ -9657,77 +9656,79 @@ i32.mul i32.const 10 i32.add - local.tee $3 + local.tee $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $4 - local.get $7 - i32.lt_s + local.get $3 + local.get $6 + i32.gt_s if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add - local.get $4 + local.get $6 i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.set $2 + local.set $0 local.get $5 if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add local.get $1 local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 + local.get $0 local.get $5 i32.add - local.set $2 + local.set $0 end - local.get $4 + local.get $6 i32.const 1 i32.add - local.set $4 + local.set $6 br $for-loop|0 end end - local.get $3 - local.get $2 + local.get $7 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add - local.get $7 + local.get $3 i32.const 2 i32.shl - local.get $6 + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if + local.get $2 local.get $0 - local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -9740,6 +9741,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + local.set $0 end local.get $0 ) @@ -10853,15 +10856,15 @@ ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) + (local $2 f64) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f64) + (local $7 i32) local.get $0 i32.load offset=4 - local.set $5 + local.set $4 local.get $0 i32.load offset=12 local.set $0 @@ -10881,7 +10884,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $3 i32.const 0 i32.lt_s if @@ -10893,12 +10896,12 @@ local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end - local.get $6 + local.get $3 i32.eqz if - local.get $5 + local.get $4 f64.load - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10911,7 +10914,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/number/dtoa - local.get $7 + local.get $2 f64.const 0 f64.eq if @@ -10923,14 +10926,14 @@ local.set $0 br $__inlined_func$~lib/util/number/dtoa end - local.get $7 - local.get $7 + local.get $2 + local.get $2 f64.sub f64.const 0 f64.ne if - local.get $7 - local.get $7 + local.get $2 + local.get $2 f64.ne if global.get $~lib/memory/__stack_pointer @@ -10947,7 +10950,7 @@ global.set $~lib/memory/__stack_pointer i32.const 11824 i32.const 11872 - local.get $7 + local.get $2 f64.const 0 f64.lt select @@ -10955,7 +10958,7 @@ br $__inlined_func$~lib/util/number/dtoa end i32.const 11904 - local.get $7 + local.get $2 call $~lib/util/number/dtoa_core i32.const 1 i32.shl @@ -10982,88 +10985,90 @@ br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.const 11724 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 28 i32.add i32.mul i32.const 28 i32.add - local.tee $2 + local.tee $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 local.get $3 local.get $6 - i32.lt_s + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $6 i32.const 3 i32.shl - local.get $5 + local.get $4 i32.add f64.load call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 - local.get $4 + local.set $0 + local.get $5 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 11728 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 - local.get $4 + local.get $0 + local.get $5 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $7 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $6 + local.get $3 i32.const 3 i32.shl - local.get $5 + local.get $4 i32.add f64.load call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -11076,6 +11081,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 return @@ -11093,7 +11100,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) local.get $0 i32.load offset=4 local.set $2 @@ -11167,7 +11173,7 @@ i32.load i32.const 1 i32.shr_u - local.set $5 + local.set $4 loop $for-loop|0 local.get $1 local.get $3 @@ -11180,22 +11186,22 @@ local.get $2 i32.add i32.load - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $4 + local.tee $5 i32.const 13072 i32.store offset=8 + local.get $5 local.get $0 i32.const 13072 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 end - local.get $5 + local.get $4 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -11224,9 +11230,9 @@ if global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $1 i32.const 13072 i32.store offset=8 + local.get $1 local.get $0 i32.const 13072 call $~lib/string/String.__concat @@ -11624,16 +11630,16 @@ ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) block $folding-inner0 local.get $0 i32.load offset=4 - local.set $2 + local.set $7 local.get $0 i32.load offset=12 local.set $0 @@ -11652,7 +11658,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $3 + local.tee $6 i32.const 0 i32.lt_s if @@ -11664,13 +11670,13 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $3 + local.get $6 i32.eqz if block $__inlined_func$~lib/util/number/utoa64 (result i32) - local.get $2 + local.get $7 i64.load - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11682,7 +11688,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $2 i64.eqz if global.get $~lib/memory/__stack_pointer @@ -11692,139 +11698,139 @@ i32.const 9824 br $__inlined_func$~lib/util/number/utoa64 end - local.get $7 + local.get $2 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.wrap_i64 - local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $2 local.get $0 + local.get $1 + local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $7 + local.get $2 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $7 + local.get $2 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $7 + local.get $2 i64.const 10000000000 i64.ge_u i32.add else - local.get $7 + local.get $2 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $7 + local.get $2 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $7 + local.get $2 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $7 + local.get $2 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $7 + local.get $2 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $7 + local.get $2 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.tee $0 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $7 local.get $0 + local.get $2 + local.get $1 call $~lib/util/number/utoa64_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 end local.set $0 global.get $~lib/memory/__stack_pointer @@ -11834,88 +11840,90 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.const 9516 i32.load i32.const 1 i32.shr_u - local.tee $6 + local.tee $3 i32.const 20 i32.add i32.mul i32.const 20 i32.add - local.tee $4 + local.tee $5 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $5 + local.get $4 i32.const 3 i32.shl - local.get $2 + local.get $7 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 - local.get $6 + local.set $0 + local.get $3 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9520 - local.get $6 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 - local.get $6 + local.get $0 + local.get $3 i32.add - local.set $1 + local.set $0 end - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|0 end end - local.get $4 - local.get $1 + local.get $5 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $6 i32.const 3 i32.shl - local.get $2 + local.get $7 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -11928,6 +11936,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 return @@ -12171,7 +12181,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $0 + local.tee $1 select local.tee $2 i64.const 4294967295 @@ -12226,16 +12236,16 @@ i32.add end end - local.get $0 + local.get $1 i32.add local.tee $4 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 local.get $3 local.get $4 call $~lib/util/number/utoa32_dec_lut @@ -12291,23 +12301,23 @@ i32.add end end - local.get $0 + local.get $1 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 local.get $2 local.get $3 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -12315,7 +12325,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 end local.set $0 global.get $~lib/memory/__stack_pointer @@ -12341,17 +12351,19 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 local.get $3 local.get $6 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add local.get $3 i32.const 3 @@ -12360,25 +12372,25 @@ i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $7 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9520 local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $7 i32.add - local.set $1 + local.set $0 end local.get $3 i32.const 1 @@ -12388,10 +12400,10 @@ end end local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add local.get $6 i32.const 3 @@ -12400,13 +12412,13 @@ i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -12419,6 +12431,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 return @@ -12511,7 +12525,7 @@ (local $7 i32) local.get $0 i32.load offset=4 - local.set $6 + local.set $4 local.get $0 i32.load offset=12 local.set $0 @@ -12537,7 +12551,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -12549,10 +12563,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $7 + local.get $3 i32.eqz if - local.get $6 + local.get $4 i32.load8_u call $~lib/util/number/utoa32 local.set $0 @@ -12563,7 +12577,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 local.get $1 i32.const 20 i32.sub @@ -12576,73 +12590,75 @@ i32.mul i32.const 10 i32.add - local.tee $3 + local.tee $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $4 - local.get $7 - i32.lt_s + local.get $3 + local.get $6 + i32.gt_s if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add local.get $4 local.get $6 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.set $2 + local.set $0 local.get $5 if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add local.get $1 local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 + local.get $0 local.get $5 i32.add - local.set $2 + local.set $0 end - local.get $4 + local.get $6 i32.const 1 i32.add - local.set $4 + local.set $6 br $for-loop|0 end end - local.get $3 - local.get $2 + local.get $7 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add - local.get $6 - local.get $7 + local.get $3 + local.get $4 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if + local.get $2 local.get $0 - local.get $1 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -12655,6 +12671,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + local.set $0 end local.get $0 ) @@ -13652,6 +13670,8 @@ i32.const 0 i32.store block $__inlined_func$std/array/isSorted (result i32) + i32.const 1 + local.set $2 local.get $0 i32.load offset=4 local.get $0 @@ -13661,8 +13681,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - i32.const 1 - local.set $2 local.get $0 i32.load offset=12 local.set $3 @@ -13973,10 +13991,9 @@ local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14382,70 +14399,17 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + (local $4 f64) + (local $5 i64) + (local $6 f32) (local $7 i32) - (local $8 f64) - (local $9 i64) - (local $10 f32) + (local $8 i32) + (local $9 i32) + (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) (local $14 i32) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i32) - (local $19 i32) - (local $20 i32) - (local $21 i32) - (local $22 i32) - (local $23 i32) - (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i32) - (local $28 i32) - (local $29 i32) - (local $30 i32) - (local $31 i32) - (local $32 i32) - (local $33 i32) - (local $34 i32) - (local $35 i32) - (local $36 i32) - (local $37 i32) - (local $38 i32) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i32) - (local $44 i32) - (local $45 i32) - (local $46 i32) - (local $47 i32) - (local $48 i32) - (local $49 i32) - (local $50 i32) - (local $51 i32) - (local $52 i32) - (local $53 i32) - (local $54 i32) - (local $55 i32) - (local $56 i32) - (local $57 i32) - (local $58 i32) - (local $59 i32) - (local $60 i32) - (local $61 i32) - (local $62 i32) - (local $63 i32) - (local $64 i32) - (local $65 i32) - (local $66 i32) - (local $67 i32) global.get $~lib/memory/__stack_pointer i32.const 172 i32.sub @@ -14456,70 +14420,70 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i64.const 0 i64.store offset=16 - local.get $1 + local.get $0 i64.const 0 i64.store offset=24 - local.get $1 + local.get $0 i64.const 0 i64.store offset=32 - local.get $1 + local.get $0 i64.const 0 i64.store offset=40 - local.get $1 + local.get $0 i64.const 0 i64.store offset=48 - local.get $1 + local.get $0 i64.const 0 i64.store offset=56 - local.get $1 + local.get $0 i64.const 0 i64.store offset=64 - local.get $1 + local.get $0 i64.const 0 i64.store offset=72 - local.get $1 + local.get $0 i64.const 0 i64.store offset=80 - local.get $1 + local.get $0 i64.const 0 i64.store offset=88 - local.get $1 + local.get $0 i64.const 0 i64.store offset=96 - local.get $1 + local.get $0 i64.const 0 i64.store offset=104 - local.get $1 + local.get $0 i64.const 0 i64.store offset=112 - local.get $1 + local.get $0 i64.const 0 i64.store offset=120 - local.get $1 + local.get $0 i64.const 0 i64.store offset=128 - local.get $1 + local.get $0 i64.const 0 i64.store offset=136 - local.get $1 + local.get $0 i64.const 0 i64.store offset=144 - local.get $1 + local.get $0 i64.const 0 i64.store offset=152 - local.get $1 + local.get $0 i64.const 0 i64.store offset=160 - local.get $1 + local.get $0 i32.const 0 i32.store offset=168 memory.size @@ -14559,9 +14523,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -14572,17 +14536,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $64 + local.tee $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14593,69 +14557,69 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store end - local.get $1 + local.get $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $65 + local.tee $3 i32.store offset=4 - local.get $1 - local.get $65 + local.get $0 + local.get $3 i32.store - local.get $65 + local.get $3 if - local.get $1 - local.get $65 + local.get $0 + local.get $3 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 - local.get $65 + local.get $0 + local.get $3 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $64 local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 1664 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -14671,9 +14635,9 @@ i32.const 6 i32.const 1696 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 i32.const 3 @@ -14684,12 +14648,12 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 call $std/array/isArraysEqual i32.eqz if @@ -14700,7 +14664,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 i32.const 0 i32.const 2147483647 @@ -14711,12 +14675,12 @@ i32.const 6 i32.const 1760 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 call $std/array/isArraysEqual i32.eqz if @@ -14727,7 +14691,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.const 0 i32.const -3 @@ -14738,12 +14702,12 @@ i32.const 6 i32.const 1792 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 call $std/array/isArraysEqual i32.eqz if @@ -14754,7 +14718,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 i32.const -2 i32.const 2147483647 @@ -14765,12 +14729,12 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 call $std/array/isArraysEqual i32.eqz if @@ -14781,7 +14745,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 i32.const 1 i32.const 0 @@ -14792,12 +14756,12 @@ i32.const 6 i32.const 1856 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 call $std/array/isArraysEqual i32.eqz if @@ -14814,36 +14778,36 @@ i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.tee $64 + local.tee $0 i32.store offset=12 - local.get $64 + local.get $0 i32.load offset=4 - local.set $65 + local.set $3 i32.const 1 - local.get $64 + local.get $0 i32.load offset=12 - local.tee $66 - local.get $66 + local.tee $9 + local.get $9 i32.const 1 i32.gt_s select local.set $1 i32.const 3 - local.get $66 - local.get $66 + local.get $9 + local.get $9 i32.const 3 i32.gt_s select - local.set $66 + local.set $9 loop $for-loop|0 local.get $1 - local.get $66 + local.get $9 i32.lt_s if local.get $1 i32.const 2 i32.shl - local.get $65 + local.get $3 i32.add i32.const 1 i32.store @@ -14863,7 +14827,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $64 + local.get $0 local.get $1 call $std/array/isArraysEqual i32.eqz @@ -14875,34 +14839,35 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $0 + local.tee $1 i32.load offset=4 - local.set $65 + local.set $0 i32.const 0 - local.get $64 + local.get $1 i32.load offset=12 - local.tee $66 - local.get $66 + local.tee $9 + local.get $9 i32.const 0 i32.gt_s select - local.set $1 + local.set $3 loop $for-loop|01 - local.get $1 - local.get $66 + local.get $3 + local.get $9 i32.lt_s if - local.get $1 + local.get $3 i32.const 2 i32.shl - local.get $65 + local.get $0 i32.add i32.const 0 i32.store - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|01 end end @@ -14911,12 +14876,12 @@ i32.const 7 i32.const 1984 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $64 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -14927,44 +14892,44 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.load offset=4 - local.set $65 + local.set $3 i32.const 0 - local.get $64 + local.get $1 i32.load offset=12 - local.tee $66 - local.get $66 + local.tee $9 + local.get $9 i32.const 0 i32.gt_s select - local.set $1 - local.get $66 + local.set $0 + local.get $9 i32.const 3 i32.sub - local.tee $66 + local.tee $9 i32.const 0 - local.get $66 + local.get $9 i32.const 0 i32.gt_s select - local.set $66 + local.set $9 loop $for-loop|03 - local.get $1 - local.get $66 + local.get $0 + local.get $9 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $65 + local.get $3 i32.add i32.const 1 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|03 end end @@ -14973,12 +14938,12 @@ i32.const 7 i32.const 2032 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $64 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -14989,37 +14954,37 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.load offset=4 - local.set $65 - local.get $64 + local.set $0 + local.get $1 i32.load offset=12 - local.tee $66 + local.tee $9 i32.const 2 i32.sub - local.tee $1 + local.tee $3 i32.const 0 - local.get $1 + local.get $3 i32.const 0 i32.gt_s select - local.set $1 + local.set $3 loop $for-loop|05 - local.get $1 - local.get $66 + local.get $3 + local.get $9 i32.lt_s if - local.get $1 + local.get $3 i32.const 2 i32.shl - local.get $65 + local.get $0 i32.add i32.const 2 i32.store - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|05 end end @@ -15028,12 +14993,12 @@ i32.const 7 i32.const 2080 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $64 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15044,41 +15009,41 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.load offset=4 - local.set $65 + local.set $3 i32.const 1 - local.get $64 + local.get $1 i32.load offset=12 - local.tee $66 - local.get $66 + local.tee $9 + local.get $9 i32.const 1 i32.gt_s select - local.set $1 + local.set $0 i32.const 0 - local.get $66 - local.get $66 + local.get $9 + local.get $9 i32.const 0 i32.gt_s select - local.set $66 + local.set $9 loop $for-loop|07 - local.get $1 - local.get $66 + local.get $0 + local.get $9 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $65 + local.get $3 i32.add i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|07 end end @@ -15087,12 +15052,12 @@ i32.const 7 i32.const 2128 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $64 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15105,9 +15070,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -15119,9 +15084,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15135,17 +15100,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 42 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -15160,9 +15125,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 1 i32.ne @@ -15176,9 +15141,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15192,9 +15157,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -15208,9 +15173,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -15222,9 +15187,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15238,17 +15203,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 1 i32.ne @@ -15262,9 +15227,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15278,9 +15243,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15295,17 +15260,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 44 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -15319,9 +15284,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15335,9 +15300,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15352,9 +15317,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15369,17 +15334,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 45 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -15393,9 +15358,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15409,9 +15374,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15426,9 +15391,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15443,9 +15408,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15459,40 +15424,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $64 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.load offset=4 i32.store offset=16 - local.get $64 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $64 + local.get $1 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset + local.get $0 local.get $1 - local.get $64 i32.store offset=16 - local.get $64 + local.get $1 i32.const 0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $64 + local.get $1 i32.const 0 i32.store offset=12 - local.get $64 + local.get $1 i32.load offset=12 if i32.const 0 @@ -15508,9 +15473,9 @@ i32.const 3 i32.const 2224 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -15523,7 +15488,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -15536,7 +15501,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -15549,7 +15514,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -15565,23 +15530,23 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $64 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $64 local.get $1 + local.get $0 call $~lib/array/Array#concat - local.tee $64 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $65 + local.tee $3 i32.store - local.get $65 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15595,9 +15560,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $65 + local.tee $3 i32.store - local.get $65 + local.get $3 i32.load offset=12 i32.const 3 i32.ne @@ -15609,7 +15574,7 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -15626,19 +15591,19 @@ i32.const 3 i32.const 2272 call $~lib/rt/__newArray - local.set $65 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $65 + local.get $3 i32.store offset=8 - local.get $64 - local.get $65 + local.get $1 + local.get $3 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $65 + local.tee $3 i32.store - local.get $65 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15650,7 +15615,7 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15663,7 +15628,7 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15676,7 +15641,7 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15689,30 +15654,30 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 46 call $~lib/array/Array#push drop - local.get $1 + local.get $0 i32.const 47 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $64 + local.tee $1 global.get $std/array/arr - local.tee $65 + local.tee $3 i32.store - local.get $64 - local.get $65 local.get $1 + local.get $3 + local.get $0 call $~lib/array/Array#concat - local.tee $64 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $65 + local.tee $3 i32.store - local.get $65 + local.get $3 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15724,7 +15689,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -15736,7 +15701,7 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.load offset=12 i32.const 5 i32.ne @@ -15748,7 +15713,7 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15761,7 +15726,7 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15774,7 +15739,7 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15787,7 +15752,7 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -15800,7 +15765,7 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -15813,10 +15778,10 @@ call $~lib/builtins/abort unreachable end - local.get $64 + local.get $1 call $~lib/array/Array#pop drop - local.get $64 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -15834,9 +15799,9 @@ i32.const 3 i32.const 2304 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -15847,17 +15812,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $64 + local.tee $1 global.get $std/array/arr - local.tee $65 + local.tee $3 i32.store offset=8 - local.get $64 local.get $1 - local.get $65 + local.get $0 + local.get $3 call $~lib/array/Array#concat - local.tee $64 + local.tee $1 i32.store offset=16 - local.get $64 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -15869,7 +15834,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -15885,28 +15850,28 @@ i32.const 3 i32.const 2336 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2384 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15924,28 +15889,28 @@ i32.const 3 i32.const 2432 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2480 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15963,28 +15928,28 @@ i32.const 3 i32.const 2528 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2576 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16002,28 +15967,28 @@ i32.const 3 i32.const 2624 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2672 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16041,28 +16006,28 @@ i32.const 3 i32.const 2720 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2768 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16080,28 +16045,28 @@ i32.const 3 i32.const 2816 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2864 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16119,28 +16084,28 @@ i32.const 3 i32.const 2912 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2960 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16158,28 +16123,28 @@ i32.const 3 i32.const 3008 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3056 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16197,28 +16162,28 @@ i32.const 3 i32.const 3104 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3152 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16236,28 +16201,28 @@ i32.const 3 i32.const 3200 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3248 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16275,28 +16240,28 @@ i32.const 3 i32.const 3296 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3344 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16314,28 +16279,28 @@ i32.const 3 i32.const 3392 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3440 call $~lib/rt/__newArray - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $64 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16349,17 +16314,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 42 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -16373,9 +16338,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16389,9 +16354,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16406,9 +16371,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16423,9 +16388,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16440,9 +16405,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -16457,17 +16422,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 41 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 5 i32.ne @@ -16481,9 +16446,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16497,9 +16462,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -16514,9 +16479,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -16531,9 +16496,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -16548,9 +16513,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -16565,9 +16530,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -16582,11 +16547,11 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 - local.tee $64 + local.tee $1 i32.const 0 i32.le_s if @@ -16597,29 +16562,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.tee $65 + local.tee $3 i32.load - local.get $65 - local.get $65 + local.get $3 + local.get $3 i32.const 4 i32.add - local.get $64 + local.get $1 i32.const 1 i32.sub - local.tee $64 + local.tee $1 i32.const 2 i32.shl - local.tee $67 + local.tee $10 call $~lib/memory/memory.copy - local.get $65 - local.get $67 + local.get $3 + local.get $10 i32.add i32.const 0 i32.store + local.get $0 local.get $1 - local.get $64 i32.store offset=12 global.set $std/array/i global.get $std/array/i @@ -16635,9 +16600,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -16651,9 +16616,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16667,9 +16632,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16684,9 +16649,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16701,9 +16666,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16718,9 +16683,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -16735,9 +16700,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -16753,9 +16718,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -16769,9 +16734,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16785,9 +16750,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16802,9 +16767,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16819,9 +16784,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16840,26 +16805,26 @@ i32.const 3 i32.const 3488 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $64 + local.tee $1 i32.store offset=16 i32.const 3 i32.const 2 i32.const 3 i32.const 3536 call $~lib/rt/__newArray - local.set $65 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $65 + local.get $3 i32.store offset=8 - local.get $64 - local.get $65 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16872,23 +16837,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $64 + local.tee $1 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3568 call $~lib/rt/__newArray - local.set $65 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $65 + local.get $3 i32.store offset=8 - local.get $64 - local.get $65 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16901,23 +16866,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $64 + local.tee $1 i32.store offset=16 i32.const 4 i32.const 2 i32.const 3 i32.const 3600 call $~lib/rt/__newArray - local.set $65 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $65 + local.get $3 i32.store offset=8 - local.get $64 - local.get $65 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16930,14 +16895,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $64 + local.tee $1 i32.store offset=16 - local.get $64 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16950,23 +16915,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $64 + local.tee $1 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3648 call $~lib/rt/__newArray - local.set $65 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $65 + local.get $3 i32.store offset=8 - local.get $64 - local.get $65 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16979,23 +16944,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $64 + local.tee $1 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3680 call $~lib/rt/__newArray - local.set $65 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $65 + local.get $3 i32.store offset=8 - local.get $64 - local.get $65 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17008,23 +16973,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $64 + local.tee $1 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3712 call $~lib/rt/__newArray - local.set $65 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $65 + local.get $3 i32.store offset=8 - local.get $64 - local.get $65 + local.get $1 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17036,15 +17001,15 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $64 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $64 + local.get $1 i32.store - local.get $64 + local.get $1 i32.load offset=12 if i32.const 0 @@ -17054,15 +17019,15 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 10 i32.const 2147483647 call $~lib/array/Array#slice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -17074,65 +17039,67 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $64 - local.get $1 + local.set $1 + local.get $0 i32.load offset=12 - local.tee $1 + local.tee $3 i32.const 1 i32.gt_u if - local.get $1 + i32.const 0 + local.set $0 + local.get $3 i32.const 1 i32.shr_u - local.set $65 - local.get $1 + local.set $9 + local.get $3 i32.const 1 i32.sub - local.set $1 + local.set $3 loop $while-continue|0 - local.get $53 - local.get $65 + local.get $0 + local.get $9 i32.lt_u if - local.get $53 + local.get $0 i32.const 2 i32.shl - local.get $64 + local.get $1 i32.add - local.tee $66 + local.tee $10 i32.load - local.set $67 - local.get $66 - local.get $1 - local.get $53 + local.set $11 + local.get $10 + local.get $3 + local.get $0 i32.sub i32.const 2 i32.shl - local.get $64 + local.get $1 i32.add - local.tee $66 + local.tee $10 i32.load i32.store - local.get $66 - local.get $67 + local.get $10 + local.get $11 i32.store - local.get $53 + local.get $0 i32.const 1 i32.add - local.set $53 + local.set $0 br $while-continue|0 end end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -17146,9 +17113,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17162,9 +17129,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -17179,9 +17146,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17196,9 +17163,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -17213,17 +17180,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 44 call $~lib/array/Array#push drop @@ -17233,31 +17200,31 @@ i32.const 6 i32.const 3744 call $~lib/rt/__newArray - local.set $53 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $53 + local.get $3 i32.store - local.get $53 + local.get $3 i32.load offset=4 - local.get $53 + local.get $3 i32.load offset=12 call $~lib/util/bytes/REVERSE - local.get $53 + local.get $3 i32.store offset=16 i32.const 0 local.set $1 - local.get $53 + local.get $3 i32.load offset=12 - local.set $64 + local.set $0 loop $for-loop|08 + local.get $0 local.get $1 - local.get $64 - i32.lt_s + i32.gt_s if - local.get $53 + local.get $3 local.get $1 call $~lib/array/Array#__get - local.get $53 + local.get $3 i32.load offset=12 local.get $1 i32.sub @@ -17285,33 +17252,33 @@ i32.const 6 i32.const 3776 call $~lib/rt/__newArray - local.set $53 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $53 + local.get $1 i32.store - local.get $53 + local.get $1 i32.load offset=4 - local.get $53 + local.get $1 i32.load offset=12 call $~lib/util/bytes/REVERSE - local.get $53 + local.get $1 i32.store offset=4 i32.const 0 - local.set $1 - local.get $53 + local.set $0 + local.get $1 i32.load offset=12 - local.set $64 + local.set $3 loop $for-loop|1 - local.get $1 - local.get $64 + local.get $0 + local.get $3 i32.lt_s if - local.get $53 local.get $1 + local.get $0 call $~lib/array/Array#__get - local.get $53 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $0 i32.sub i32.const 1 i32.sub @@ -17324,10 +17291,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end @@ -17337,33 +17304,31 @@ i32.const 6 i32.const 3808 call $~lib/rt/__newArray - local.set $53 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $53 + local.get $1 i32.store - local.get $53 + local.get $1 i32.load offset=4 - local.get $53 + local.get $1 i32.load offset=12 call $~lib/util/bytes/REVERSE - local.get $53 + local.get $1 i32.store offset=12 - i32.const 0 - local.set $1 - local.get $53 + local.get $1 i32.load offset=12 - local.set $64 + local.set $0 loop $for-loop|2 - local.get $1 - local.get $64 - i32.lt_s + local.get $0 + local.get $2 + i32.gt_s if - local.get $53 local.get $1 + local.get $2 call $~lib/array/Array#__get - local.get $53 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $2 i32.sub i32.const 1 i32.sub @@ -17376,10 +17341,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|2 end end @@ -17389,30 +17354,30 @@ i32.const 9 i32.const 3856 call $~lib/rt/__newArray - local.set $53 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $53 + local.get $1 i32.store - local.get $53 + local.get $1 call $~lib/array/Array#reverse - local.tee $53 + local.tee $1 i32.store offset=20 i32.const 0 - local.set $1 - local.get $53 + local.set $0 + local.get $1 i32.load offset=12 - local.set $64 + local.set $2 loop $for-loop|3 - local.get $1 - local.get $64 + local.get $0 + local.get $2 i32.lt_s if - local.get $53 local.get $1 + local.get $0 call $~lib/array/Array#__get - local.get $53 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $0 i32.sub i32.const 1 i32.sub @@ -17425,10 +17390,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end @@ -17438,28 +17403,28 @@ i32.const 9 i32.const 3904 call $~lib/rt/__newArray - local.set $53 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $53 + local.get $1 i32.store - local.get $53 + local.get $1 call $~lib/array/Array#reverse - local.tee $53 + local.tee $0 i32.store offset=24 i32.const 0 local.set $1 - local.get $53 + local.get $0 i32.load offset=12 - local.set $64 + local.set $2 loop $for-loop|4 local.get $1 - local.get $64 + local.get $2 i32.lt_s if - local.get $53 + local.get $0 local.get $1 call $~lib/array/Array#__get - local.get $53 + local.get $0 i32.load offset=12 local.get $1 i32.sub @@ -17487,30 +17452,30 @@ i32.const 9 i32.const 3952 call $~lib/rt/__newArray - local.set $53 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $53 + local.get $1 i32.store - local.get $53 + local.get $1 call $~lib/array/Array#reverse - local.tee $53 + local.tee $0 i32.store offset=28 i32.const 0 - local.set $1 - local.get $53 + local.set $2 + local.get $0 i32.load offset=12 - local.set $64 + local.set $1 loop $for-loop|5 local.get $1 - local.get $64 - i32.lt_s + local.get $2 + i32.gt_s if - local.get $53 - local.get $1 + local.get $0 + local.get $2 call $~lib/array/Array#__get - local.get $53 + local.get $0 i32.load offset=12 - local.get $1 + local.get $2 i32.sub i32.const 1 i32.sub @@ -17523,42 +17488,44 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|5 end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $53 + local.tee $2 i32.store + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf - local.get $53 + local.get $2 i32.load offset=12 - local.tee $64 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $64 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $53 + local.get $2 i32.load offset=4 - local.set $53 + local.set $2 loop $while-continue|013 - local.get $2 - local.get $64 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 + local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $53 + local.get $2 i32.add i32.load i32.const 44 @@ -17567,7 +17534,7 @@ local.get $1 i32.const 1 i32.add - local.set $2 + local.set $0 br $while-continue|013 end end @@ -17589,16 +17556,18 @@ global.get $std/array/arr local.tee $2 i32.store + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf39 local.get $2 i32.load offset=12 - local.tee $53 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $53 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf39 local.get $2 @@ -17606,7 +17575,7 @@ local.set $2 loop $while-continue|041 local.get $0 - local.get $53 + local.get $3 i32.lt_s if local.get $0 @@ -17644,33 +17613,35 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $2 i32.store + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf42 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf42 - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|044 - local.get $2 - local.get $7 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $7 + local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add i32.load i32.const 45 @@ -17679,7 +17650,7 @@ local.get $1 i32.const 1 i32.add - local.set $7 + local.set $0 br $while-continue|044 end end @@ -17710,11 +17681,11 @@ block $__inlined_func$~lib/array/Array#indexOf45 local.get $2 i32.load offset=12 - local.tee $7 + local.tee $3 i32.const 100 i32.le_s i32.const 1 - local.get $7 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf45 local.get $2 @@ -17722,7 +17693,7 @@ local.set $2 loop $while-continue|047 local.get $0 - local.get $7 + local.get $3 i32.lt_s if local.get $0 @@ -17760,12 +17731,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf48 - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const -100 @@ -17777,41 +17748,41 @@ local.get $2 i32.const 100 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 - local.get $0 - i32.load offset=4 local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 loop $while-continue|050 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf48 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|050 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -17826,12 +17797,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf51 - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const -2 @@ -17843,41 +17814,41 @@ local.get $2 i32.const 2 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 - local.get $0 - i32.load offset=4 local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 loop $while-continue|053 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf51 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|053 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 3 @@ -17892,12 +17863,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf54 - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const -4 @@ -17909,41 +17880,41 @@ local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 - local.get $0 - i32.load offset=4 local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 loop $while-continue|056 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf54 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|056 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -17958,33 +17929,35 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $2 i32.store + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf57 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf57 - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|059 - local.get $2 - local.get $6 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $6 + local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add i32.load i32.const 43 @@ -17993,7 +17966,7 @@ local.get $1 i32.const 1 i32.add - local.set $6 + local.set $0 br $while-continue|059 end end @@ -18024,11 +17997,11 @@ block $__inlined_func$~lib/array/Array#indexOf60 local.get $2 i32.load offset=12 - local.tee $6 + local.tee $3 i32.const 1 i32.le_s i32.const 1 - local.get $6 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf60 local.get $2 @@ -18036,7 +18009,7 @@ local.set $2 loop $while-continue|062 local.get $0 - local.get $6 + local.get $3 i32.lt_s if local.get $0 @@ -18083,11 +18056,11 @@ block $__inlined_func$~lib/array/Array#indexOf63 local.get $2 i32.load offset=12 - local.tee $6 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $6 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf63 local.get $2 @@ -18095,7 +18068,7 @@ local.set $2 loop $while-continue|065 local.get $0 - local.get $6 + local.get $3 i32.lt_s if local.get $0 @@ -18136,35 +18109,37 @@ i32.const 10 i32.const 4000 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|067 - local.get $2 - local.get $5 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $5 + local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add f32.load f32.const nan:0x400000 @@ -18173,7 +18148,7 @@ local.get $1 i32.const 1 i32.add - local.set $5 + local.set $0 br $while-continue|067 end end @@ -18196,35 +18171,37 @@ i32.const 11 i32.const 4032 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|069 - local.get $2 - local.get $4 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $4 + local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add f64.load f64.const nan:0x8000000000000 @@ -18233,7 +18210,7 @@ local.get $1 i32.const 1 i32.add - local.set $4 + local.set $0 br $while-continue|069 end end @@ -18257,64 +18234,64 @@ i32.const 3 i32.const 4064 call $~lib/rt/__newArray - local.tee $4 + local.tee $2 i32.store offset=24 i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $2 i32.load offset=12 - local.tee $1 - local.set $2 + local.tee $0 + local.set $3 i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 + local.get $0 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 - local.get $2 + local.get $0 + local.get $3 i32.add - local.get $1 + local.get $0 i32.const 1 i32.sub - local.get $2 - local.get $1 - local.get $2 + local.get $3 + local.get $0 + local.get $3 i32.le_s select - local.get $2 + local.get $3 i32.const 0 i32.lt_s select - local.set $0 - local.get $4 - i32.load offset=4 local.set $1 + local.get $2 + i32.load offset=4 + local.set $0 loop $while-continue|01 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|01 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18327,60 +18304,60 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $2 i32.load offset=12 - local.tee $1 - local.set $2 + local.tee $0 + local.set $3 i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf6 - local.get $1 + local.get $0 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf6 - local.get $1 - local.get $2 + local.get $0 + local.get $3 i32.add - local.get $1 + local.get $0 i32.const 1 i32.sub - local.get $2 - local.get $1 - local.get $2 + local.get $3 + local.get $0 + local.get $3 i32.le_s select - local.get $2 + local.get $3 i32.const 0 i32.lt_s select - local.set $0 - local.get $4 - i32.load offset=4 local.set $1 + local.get $2 + i32.load offset=4 + local.set $0 loop $while-continue|07 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 7 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf6 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|07 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18392,9 +18369,9 @@ unreachable end i32.const -1 - local.set $2 + local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf8 - local.get $4 + local.get $2 i32.load offset=12 local.tee $0 i32.eqz @@ -18407,36 +18384,35 @@ i32.const 3 i32.le_s select - local.set $0 - local.get $4 - i32.load offset=4 local.set $1 + local.get $2 + i32.load offset=4 + local.set $0 loop $while-continue|071 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $2 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf8 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|071 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -18448,9 +18424,9 @@ unreachable end i32.const -1 - local.set $2 + local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf72 - local.get $4 + local.get $2 i32.load offset=12 local.tee $0 i32.eqz @@ -18463,36 +18439,35 @@ i32.const 2 i32.le_s select - local.set $0 - local.get $4 - i32.load offset=4 local.set $1 + local.get $2 + i32.load offset=4 + local.set $0 loop $while-continue|074 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $2 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf72 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|074 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1552 @@ -18502,45 +18477,45 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf75 - local.get $4 + local.get $2 i32.load offset=12 - local.tee $1 + local.tee $0 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf75 - local.get $1 + local.get $0 i32.const 2 i32.sub - local.set $0 - local.get $4 - i32.load offset=4 local.set $1 + local.get $2 + i32.load offset=4 + local.set $0 loop $while-continue|077 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf75 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|077 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1552 @@ -18552,7 +18527,7 @@ i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf78 - local.get $4 + local.get $2 i32.load offset=12 local.tee $1 i32.eqz @@ -18560,20 +18535,19 @@ local.get $1 i32.const 1 i32.sub - local.set $1 - local.get $4 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 + local.set $1 loop $while-continue|080 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 2 @@ -18582,7 +18556,7 @@ local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|080 end end @@ -18605,29 +18579,29 @@ local.tee $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf9 local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf9 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|010 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -18636,17 +18610,17 @@ i32.const 44 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf9 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|010 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -18662,29 +18636,29 @@ local.tee $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf12 local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf12 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|014 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -18693,17 +18667,17 @@ i32.const 42 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf12 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|014 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -18719,29 +18693,29 @@ local.tee $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf16 local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf16 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|017 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -18750,17 +18724,17 @@ i32.const 45 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf16 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|017 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.ge_s if @@ -18776,29 +18750,29 @@ local.tee $2 i32.store i32.const 100 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf19 local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf19 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|020 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -18807,17 +18781,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf19 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.ge_s if @@ -18830,12 +18804,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf22 - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const -100 @@ -18847,41 +18821,41 @@ local.get $2 i32.const 100 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 - local.get $0 - i32.load offset=4 local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 loop $while-continue|023 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf22 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -18894,12 +18868,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf25 - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const -2 @@ -18911,41 +18885,41 @@ local.get $2 i32.const 2 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 - local.get $0 - i32.load offset=4 local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 loop $while-continue|026 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf25 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|026 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -18958,12 +18932,12 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf28 - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const -4 @@ -18975,41 +18949,41 @@ local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 - local.get $0 - i32.load offset=4 local.set $0 + local.get $1 + i32.load offset=4 + local.set $1 loop $while-continue|029 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf28 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|029 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -19025,29 +18999,29 @@ local.tee $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf31 local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf31 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|032 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -19056,17 +19030,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf31 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|032 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -19082,29 +19056,29 @@ local.tee $2 i32.store i32.const 1 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf34 local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 1 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf34 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|035 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -19113,17 +19087,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf34 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|035 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -19139,29 +19113,29 @@ local.tee $2 i32.store i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf37 local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf37 local.get $2 i32.load offset=4 local.set $2 loop $while-continue|038 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -19170,17 +19144,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf37 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|038 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -19197,49 +19171,51 @@ i32.const 10 i32.const 4112 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 - local.get $0 + local.set $0 + i32.const 0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $1 + local.get $2 select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|082 - local.get $1 - local.get $25 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if i32.const 1 - local.get $25 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add f32.load - local.tee $10 + local.tee $6 f32.const nan:0x400000 f32.eq - local.get $10 - local.get $10 + local.get $6 + local.get $6 f32.ne i32.or br_if $__inlined_func$~lib/array/Array#includes drop - local.get $25 + local.get $0 i32.const 1 i32.add - local.set $25 + local.set $0 br $while-continue|082 end end @@ -19260,49 +19236,51 @@ i32.const 11 i32.const 4144 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 - local.get $0 + local.set $0 + i32.const 0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $1 + local.get $2 select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|084 - local.get $1 - local.get $24 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if i32.const 1 - local.get $24 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $1 i32.add f64.load - local.tee $8 + local.tee $4 f64.const nan:0x8000000000000 f64.eq - local.get $8 - local.get $8 + local.get $4 + local.get $4 f64.ne i32.or br_if $__inlined_func$~lib/array/Array#includes drop - local.get $24 + local.get $0 i32.const 1 i32.add - local.set $24 + local.set $0 br $while-continue|084 end end @@ -20453,16 +20431,16 @@ i32.const 0 local.get $1 i32.load offset=12 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i32.const 0 i32.gt_s select - local.set $5 + local.set $9 local.get $2 i32.const 1 - local.get $4 - local.get $5 + local.get $3 + local.get $9 i32.sub local.tee $2 local.get $2 @@ -20480,44 +20458,44 @@ i32.const 12 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $10 i32.store - local.get $6 + local.get $10 i32.load offset=4 local.get $1 i32.load offset=4 - local.tee $7 - local.get $5 + local.tee $11 + local.get $9 i32.const 2 i32.shl i32.add - local.tee $24 + local.tee $12 local.get $2 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $3 local.get $2 - local.get $5 + local.get $9 i32.add - local.tee $5 + local.tee $9 i32.ne if - local.get $24 - local.get $5 + local.get $12 + local.get $9 i32.const 2 i32.shl - local.get $7 + local.get $11 i32.add - local.get $4 - local.get $5 + local.get $3 + local.get $9 i32.sub i32.const 2 i32.shl call $~lib/memory/memory.copy end local.get $1 - local.get $4 + local.get $3 local.get $2 i32.sub i32.store offset=12 @@ -20525,9 +20503,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $10 i32.store offset=4 - local.get $6 + local.get $10 i32.load offset=12 i32.const 1 i32.ne @@ -20540,7 +20518,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $10 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -20652,53 +20630,55 @@ call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 6144 i32.store offset=8 - local.get $0 + i32.const 0 + local.set $0 + local.get $1 i32.load offset=12 - local.set $1 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex loop $for-loop|093 + local.get $2 local.get $1 - local.get $0 i32.load offset=12 - local.tee $2 - local.get $1 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $61 + local.get $0 i32.gt_s if - local.get $0 + local.get $1 i32.load offset=4 - local.get $61 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $61 local.get $0 + local.get $1 i32.const 6144 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex - local.get $61 + local.get $0 i32.const 1 i32.add - local.set $61 + local.set $0 br $for-loop|093 end end i32.const -1 - local.set $61 + local.set $0 end - local.get $61 + local.get $0 global.set $std/array/i global.get $std/array/i if @@ -20717,48 +20697,50 @@ local.get $0 i32.const 6176 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex95 loop $for-loop|097 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $60 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $60 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $60 + local.get $0 local.get $1 i32.const 6176 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex95 - local.get $60 + local.get $0 i32.const 1 i32.add - local.set $60 + local.set $0 br $for-loop|097 end end i32.const -1 - local.set $60 + local.set $0 end - local.get $60 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -20779,48 +20761,50 @@ local.get $0 i32.const 6208 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex99 loop $for-loop|0101 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $58 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $58 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $58 + local.get $0 local.get $1 i32.const 6208 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex99 - local.get $58 + local.get $0 i32.const 1 i32.add - local.set $58 + local.set $0 br $for-loop|0101 end end i32.const -1 - local.set $58 + local.set $0 end - local.get $58 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -20841,48 +20825,50 @@ local.get $0 i32.const 6240 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex103 loop $for-loop|0105 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $57 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $57 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $57 + local.get $0 local.get $1 i32.const 6240 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex103 - local.get $57 + local.get $0 i32.const 1 i32.add - local.set $57 + local.set $0 br $for-loop|0105 end end i32.const -1 - local.set $57 + local.set $0 end - local.get $57 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -20919,48 +20905,50 @@ local.get $0 i32.const 6272 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex108 loop $for-loop|0110 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $56 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $56 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $56 + local.get $0 local.get $1 i32.const 6272 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex108 - local.get $56 + local.get $0 i32.const 1 i32.add - local.set $56 + local.set $0 br $for-loop|0110 end end i32.const -1 - local.set $56 + local.set $0 end - local.get $56 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21003,53 +20991,55 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 6304 i32.store offset=8 - local.get $0 + i32.const 0 + local.set $0 + local.get $1 i32.load offset=12 - local.set $1 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex112 loop $for-loop|0114 + local.get $2 local.get $1 - local.get $0 i32.load offset=12 - local.tee $2 - local.get $1 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $55 + local.get $0 i32.gt_s if - local.get $0 + local.get $1 i32.load offset=4 - local.get $55 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $55 local.get $0 + local.get $1 i32.const 6304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex112 - local.get $55 + local.get $0 i32.const 1 i32.add - local.set $55 + local.set $0 br $for-loop|0114 end end i32.const -1 - local.set $55 + local.set $0 end - local.get $55 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21100,48 +21090,48 @@ i32.const 3 i32.const 6336 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 6384 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex loop $for-loop|0118 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 + local.get $2 i32.const 6384 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0118 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i if @@ -21155,43 +21145,43 @@ global.get $~lib/memory/__stack_pointer i32.const 6416 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex120 loop $for-loop|0122 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 + local.get $2 i32.const 6416 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex120 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0122 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -21207,43 +21197,43 @@ global.get $~lib/memory/__stack_pointer i32.const 6448 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex124 loop $for-loop|0126 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 + local.get $2 i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex124 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0126 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21259,44 +21249,43 @@ global.get $~lib/memory/__stack_pointer i32.const 6480 i32.store offset=8 - local.get $1 - local.tee $0 + local.get $2 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex128 loop $for-loop|0130 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 local.get $0 + local.get $2 i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex128 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0130 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21318,34 +21307,36 @@ local.get $0 i32.const 6512 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 loop $for-loop|0133 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $52 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $52 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 - local.get $52 + local.get $3 + local.get $0 local.get $1 i32.const 6512 i32.load @@ -21353,10 +21344,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $52 + local.get $0 i32.const 1 i32.add - local.set $52 + local.set $0 br $for-loop|0133 end end @@ -21380,34 +21371,36 @@ local.get $0 i32.const 6544 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 loop $for-loop|0137 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $51 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $51 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 - local.get $51 + local.get $3 + local.get $0 local.get $1 i32.const 6544 i32.load @@ -21415,10 +21408,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every135 drop - local.get $51 + local.get $0 i32.const 1 i32.add - local.set $51 + local.set $0 br $for-loop|0137 end end @@ -21441,34 +21434,36 @@ local.get $0 i32.const 6576 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 loop $for-loop|0141 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $50 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $50 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 - local.get $50 + local.get $3 + local.get $0 local.get $1 i32.const 6576 i32.load @@ -21476,10 +21471,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every139 drop - local.get $50 + local.get $0 i32.const 1 i32.add - local.set $50 + local.set $0 br $for-loop|0141 end end @@ -21519,34 +21514,36 @@ local.get $0 i32.const 6608 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 loop $for-loop|0146 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $49 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $49 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 - local.get $49 + local.get $3 + local.get $0 local.get $1 i32.const 6608 i32.load @@ -21554,10 +21551,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every144 drop - local.get $49 + local.get $0 i32.const 1 i32.add - local.set $49 + local.set $0 br $for-loop|0146 end end @@ -21602,50 +21599,52 @@ block $__inlined_func$~lib/array/Array#every148 (result i32) global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 6640 i32.store offset=8 - local.get $0 + i32.const 0 + local.set $0 + local.get $1 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|0150 + local.get $2 local.get $1 - local.get $0 i32.load offset=12 - local.tee $2 - local.get $1 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $48 + local.get $0 i32.gt_s if - local.get $0 + local.get $1 i32.load offset=4 - local.get $48 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $2 - local.get $48 + local.get $3 local.get $0 + local.get $1 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $__inlined_func$~lib/array/Array#every148 drop - local.get $48 + local.get $0 i32.const 1 i32.add - local.set $48 + local.set $0 br $for-loop|0150 end end @@ -21695,49 +21694,51 @@ block $__inlined_func$~lib/array/Array#some (result i32) global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 6672 i32.store offset=8 - local.get $0 + i32.const 0 + local.set $0 + local.get $1 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|0154 + local.get $2 local.get $1 - local.get $0 i32.load offset=12 - local.tee $2 - local.get $1 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $47 + local.get $0 i32.gt_s if - local.get $0 + local.get $1 i32.load offset=4 - local.get $47 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 - local.get $47 + local.get $3 local.get $0 + local.get $1 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $47 + local.get $0 i32.const 1 i32.add - local.set $47 + local.set $0 br $for-loop|0154 end end @@ -21761,44 +21762,46 @@ local.get $0 i32.const 6704 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 loop $for-loop|0158 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $46 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $46 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 - local.get $46 + local.get $3 + local.get $0 local.get $1 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some156 drop - local.get $46 + local.get $0 i32.const 1 i32.add - local.set $46 + local.set $0 br $for-loop|0158 end end @@ -21821,44 +21824,46 @@ local.get $0 i32.const 6736 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 loop $for-loop|0162 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $45 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $45 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 - local.get $45 + local.get $3 + local.get $0 local.get $1 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some160 drop - local.get $45 + local.get $0 i32.const 1 i32.add - local.set $45 + local.set $0 br $for-loop|0162 end end @@ -21897,44 +21902,46 @@ local.get $0 i32.const 6768 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 loop $for-loop|0167 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $44 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $44 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 - local.get $44 + local.get $3 + local.get $0 local.get $1 i32.const 6768 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some165 drop - local.get $44 + local.get $0 i32.const 1 i32.add - local.set $44 + local.set $0 br $for-loop|0167 end end @@ -21980,49 +21987,51 @@ block $__inlined_func$~lib/array/Array#some169 (result i32) global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 6800 i32.store offset=8 - local.get $0 + i32.const 0 + local.set $0 + local.get $1 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|0171 + local.get $2 local.get $1 - local.get $0 i32.load offset=12 - local.tee $2 - local.get $1 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $43 + local.get $0 i32.gt_s if - local.get $0 + local.get $1 i32.load offset=4 - local.get $43 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $2 - local.get $43 + local.get $3 local.get $0 + local.get $1 i32.const 6800 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some169 drop - local.get $43 + local.get $0 i32.const 1 i32.add - local.set $43 + local.set $0 br $for-loop|0171 end end @@ -22072,44 +22081,46 @@ global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 6832 i32.store offset=8 - local.get $0 + i32.const 0 + local.set $0 + local.get $1 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|0175 + local.get $2 local.get $1 - local.get $0 i32.load offset=12 - local.tee $2 - local.get $1 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $42 + local.get $0 i32.gt_s if - local.get $0 + local.get $1 i32.load offset=4 - local.get $42 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $42 local.get $0 + local.get $1 i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $42 + local.get $0 i32.const 1 i32.add - local.set $42 + local.set $0 br $for-loop|0175 end end @@ -22134,39 +22145,41 @@ local.get $0 i32.const 6864 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 loop $for-loop|0179 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $41 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $41 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $41 + local.get $0 local.get $1 i32.const 6864 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $41 + local.get $0 i32.const 1 i32.add - local.set $41 + local.set $0 br $for-loop|0179 end end @@ -22207,39 +22220,41 @@ local.get $0 i32.const 6896 i32.store offset=8 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 - local.set $0 + local.set $2 loop $for-loop|0184 - local.get $0 + local.get $2 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $40 + local.get $0 i32.gt_s if local.get $1 i32.load offset=4 - local.get $40 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $40 + local.get $0 local.get $1 i32.const 6896 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $40 + local.get $0 i32.const 1 i32.add - local.set $40 + local.set $0 br $for-loop|0184 end end @@ -22286,44 +22301,46 @@ global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 6928 i32.store offset=8 - local.get $0 + i32.const 0 + local.set $0 + local.get $1 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|0188 + local.get $2 local.get $1 - local.get $0 i32.load offset=12 - local.tee $2 - local.get $1 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $39 + local.get $0 i32.gt_s if - local.get $0 + local.get $1 i32.load offset=4 - local.get $39 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $39 local.get $0 + local.get $1 i32.const 6928 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $39 + local.get $0 i32.const 1 i32.add - local.set $39 + local.set $0 br $for-loop|0188 end end @@ -22372,44 +22389,46 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 6960 i32.store offset=8 - local.get $0 + i32.const 0 + local.set $0 + local.get $1 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|0193 + local.get $2 local.get $1 - local.get $0 i32.load offset=12 - local.tee $2 - local.get $1 + local.tee $3 local.get $2 + local.get $3 i32.lt_s select - local.get $38 + local.get $0 i32.gt_s if - local.get $0 + local.get $1 i32.load offset=4 - local.get $38 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $38 local.get $0 + local.get $1 i32.const 6960 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $38 + local.get $0 i32.const 1 i32.add - local.set $38 + local.set $0 br $for-loop|0193 end end @@ -22430,23 +22449,23 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|6 - local.get $1 + local.get $0 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|6 end end @@ -22485,7 +22504,7 @@ global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 6992 @@ -22499,59 +22518,61 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.store + local.get $0 local.get $2 - local.get $1 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $9 i32.store - local.get $4 + local.get $9 i32.load offset=4 - local.set $5 + local.set $10 + i32.const 0 + local.set $0 loop $for-loop|0197 + local.get $3 local.get $2 - local.get $1 i32.load offset=12 - local.tee $6 - local.get $2 - local.get $6 + local.tee $11 + local.get $3 + local.get $11 i32.lt_s select - local.get $37 + local.get $0 i32.gt_s if - local.get $37 + local.get $0 i32.const 2 i32.shl - local.tee $6 - local.get $1 + local.tee $11 + local.get $2 i32.load offset=4 i32.add i32.load - local.set $7 + local.set $12 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $6 + local.get $10 + local.get $11 i32.add - local.get $7 - local.get $37 - local.get $1 + local.get $12 + local.get $0 + local.get $2 i32.const 6992 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store - local.get $37 + local.get $0 i32.const 1 i32.add - local.set $37 + local.set $0 br $for-loop|0197 end end @@ -22559,9 +22580,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $9 i32.store offset=12 - local.get $4 + local.get $9 i32.load offset=12 i32.const 4 i32.ne @@ -22573,9 +22594,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $9 i32.const 0 call $~lib/array/Array#__get + local.set $6 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 @@ -22584,6 +22606,7 @@ i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s + local.get $6 f32.ne if i32.const 0 @@ -22917,52 +22940,56 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 7248 i32.store offset=8 - local.get $0 - i32.load offset=12 + i32.const 0 local.set $1 + i32.const 0 + local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 loop $for-loop|0206 - local.get $1 - local.get $0 - i32.load offset=12 - local.tee $2 - local.get $1 + local.get $3 local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 i32.lt_s select - local.get $36 + local.get $0 i32.gt_s if - local.get $0 + local.get $2 i32.load offset=4 - local.get $36 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $9 i32.const 4 global.set $~argumentsLength - local.get $22 - local.get $2 - local.get $36 + local.get $1 + local.get $9 local.get $0 + local.get $2 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $22 - local.get $36 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $36 + local.set $0 br $for-loop|0206 end end - local.get $22 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22978,54 +23005,56 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 7280 i32.store offset=8 i32.const 4 + local.set $1 + i32.const 0 local.set $0 - local.get $1 + local.get $2 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|0210 + local.get $3 local.get $2 - local.get $1 i32.load offset=12 - local.tee $4 - local.get $2 - local.get $4 + local.tee $9 + local.get $3 + local.get $9 i32.lt_s select - local.get $35 + local.get $0 i32.gt_s if - local.get $1 + local.get $2 i32.load offset=4 - local.get $35 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $9 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $35 local.get $1 + local.get $9 + local.get $0 + local.get $2 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $35 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $35 + local.set $0 br $for-loop|0210 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23041,52 +23070,56 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 7312 i32.store offset=8 - local.get $1 - i32.load offset=12 + i32.const 0 + local.set $1 + i32.const 0 local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 loop $for-loop|0214 - local.get $0 - local.get $1 - i32.load offset=12 - local.tee $2 - local.get $0 + local.get $3 local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 i32.lt_s select - local.get $34 + local.get $0 i32.gt_s if - local.get $1 + local.get $2 i32.load offset=4 - local.get $34 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $9 i32.const 4 global.set $~argumentsLength - local.get $21 - local.get $2 - local.get $34 local.get $1 + local.get $9 + local.get $0 + local.get $2 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $21 - local.get $34 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $34 + local.set $0 br $for-loop|0214 end end - local.get $21 + local.get $1 i32.eqz if i32.const 0 @@ -23099,52 +23132,56 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 7344 i32.store offset=8 - local.get $1 - i32.load offset=12 + i32.const 0 + local.set $1 + i32.const 0 local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 loop $for-loop|0218 - local.get $0 - local.get $1 - i32.load offset=12 - local.tee $2 - local.get $0 + local.get $3 local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 i32.lt_s select - local.get $33 + local.get $0 i32.gt_s if - local.get $1 + local.get $2 i32.load offset=4 - local.get $33 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $9 i32.const 4 global.set $~argumentsLength - local.get $20 - local.get $2 - local.get $33 local.get $1 + local.get $9 + local.get $0 + local.get $2 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $20 - local.get $33 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $33 + local.set $0 br $for-loop|0218 end end - local.get $20 + local.get $1 if i32.const 0 i32.const 1552 @@ -23156,52 +23193,56 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 7376 i32.store offset=8 - local.get $1 - i32.load offset=12 + i32.const 0 + local.set $1 + i32.const 0 local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 loop $for-loop|0222 - local.get $0 - local.get $1 - i32.load offset=12 - local.tee $2 - local.get $0 + local.get $3 local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 i32.lt_s select - local.get $32 + local.get $0 i32.gt_s if - local.get $1 + local.get $2 i32.load offset=4 - local.get $32 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $9 i32.const 4 global.set $~argumentsLength - local.get $19 - local.get $2 - local.get $32 local.get $1 + local.get $9 + local.get $0 + local.get $2 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $19 - local.get $32 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $32 + local.set $0 br $for-loop|0222 end end - local.get $19 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23233,52 +23274,56 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 7408 i32.store offset=8 - local.get $1 - i32.load offset=12 + i32.const 0 + local.set $1 + i32.const 0 local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 loop $for-loop|0227 - local.get $0 - local.get $1 - i32.load offset=12 - local.tee $2 - local.get $0 + local.get $3 local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 i32.lt_s select - local.get $31 + local.get $0 i32.gt_s if - local.get $1 + local.get $2 i32.load offset=4 - local.get $31 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $9 i32.const 4 global.set $~argumentsLength - local.get $18 - local.get $2 - local.get $31 local.get $1 + local.get $9 + local.get $0 + local.get $2 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $18 - local.get $31 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $31 + local.set $0 br $for-loop|0227 end end - local.get $18 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23321,52 +23366,56 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 7440 i32.store offset=8 - local.get $0 - i32.load offset=12 + i32.const 0 local.set $1 + i32.const 0 + local.set $0 + local.get $2 + i32.load offset=12 + local.set $3 loop $for-loop|0231 - local.get $1 - local.get $0 - i32.load offset=12 - local.tee $2 - local.get $1 + local.get $3 local.get $2 + i32.load offset=12 + local.tee $9 + local.get $3 + local.get $9 i32.lt_s select - local.get $30 + local.get $0 i32.gt_s if - local.get $0 + local.get $2 i32.load offset=4 - local.get $30 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $9 i32.const 4 global.set $~argumentsLength - local.get $17 - local.get $2 - local.get $30 + local.get $1 + local.get $9 local.get $0 + local.get $2 i32.const 7440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $17 - local.get $30 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $30 + local.set $0 br $for-loop|0231 end end - local.get $17 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -23413,12 +23462,14 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 7472 i32.store offset=8 - local.get $1 + i32.const 0 + local.set $1 + local.get $2 i32.load offset=12 i32.const 1 i32.sub @@ -23428,24 +23479,24 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $16 - local.get $2 - local.get $0 local.get $1 + local.get $3 + local.get $0 + local.get $2 i32.const 7472 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $16 + local.set $1 local.get $0 i32.const 1 i32.sub @@ -23453,7 +23504,7 @@ br $for-loop|0235 end end - local.get $16 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23469,14 +23520,14 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 7504 i32.store offset=8 i32.const 4 - local.set $2 - local.get $1 + local.set $1 + local.get $2 i32.load offset=12 i32.const 1 i32.sub @@ -23486,24 +23537,24 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $2 - local.get $4 - local.get $0 local.get $1 + local.get $3 + local.get $0 + local.get $2 i32.const 7504 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $2 + local.set $1 local.get $0 i32.const 1 i32.sub @@ -23511,7 +23562,7 @@ br $for-loop|0239 end end - local.get $2 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23527,12 +23578,14 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 7536 i32.store offset=8 - local.get $1 + i32.const 0 + local.set $1 + local.get $2 i32.load offset=12 i32.const 1 i32.sub @@ -23542,24 +23595,24 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $15 - local.get $2 - local.get $0 local.get $1 + local.get $3 + local.get $0 + local.get $2 i32.const 7536 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $15 + local.set $1 local.get $0 i32.const 1 i32.sub @@ -23567,7 +23620,7 @@ br $for-loop|0243 end end - local.get $15 + local.get $1 i32.eqz if i32.const 0 @@ -23580,12 +23633,14 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 7568 i32.store offset=8 - local.get $1 + i32.const 0 + local.set $1 + local.get $2 i32.load offset=12 i32.const 1 i32.sub @@ -23595,24 +23650,24 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $14 - local.get $2 - local.get $0 local.get $1 + local.get $3 + local.get $0 + local.get $2 i32.const 7568 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $14 + local.set $1 local.get $0 i32.const 1 i32.sub @@ -23620,7 +23675,7 @@ br $for-loop|0247 end end - local.get $14 + local.get $1 if i32.const 0 i32.const 1552 @@ -23632,12 +23687,14 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 7600 i32.store offset=8 - local.get $1 + i32.const 0 + local.set $1 + local.get $2 i32.load offset=12 i32.const 1 i32.sub @@ -23647,24 +23704,24 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $13 - local.get $2 - local.get $0 local.get $1 + local.get $3 + local.get $0 + local.get $2 i32.const 7600 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $13 + local.set $1 local.get $0 i32.const 1 i32.sub @@ -23672,7 +23729,7 @@ br $for-loop|0251 end end - local.get $13 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23704,12 +23761,14 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store local.get $0 i32.const 7632 i32.store offset=8 - local.get $1 + i32.const 0 + local.set $1 + local.get $2 i32.load offset=12 i32.const 1 i32.sub @@ -23719,24 +23778,24 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $12 - local.get $2 - local.get $0 local.get $1 + local.get $3 + local.get $0 + local.get $2 i32.const 7632 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 + local.set $1 local.get $0 i32.const 1 i32.sub @@ -23744,7 +23803,7 @@ br $for-loop|0256 end end - local.get $12 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23787,12 +23846,14 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 7664 i32.store offset=8 - local.get $1 + i32.const 0 + local.set $1 + local.get $2 i32.load offset=12 i32.const 1 i32.sub @@ -23802,24 +23863,24 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.load offset=4 local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 4 global.set $~argumentsLength - local.get $11 - local.get $2 - local.get $0 local.get $1 + local.get $3 + local.get $0 + local.get $2 i32.const 7664 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $11 + local.set $1 local.get $0 i32.const 1 i32.sub @@ -23827,7 +23888,7 @@ br $for-loop|0260 end end - local.get $11 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23889,51 +23950,51 @@ i64.const -7046029254386353131 call $~lib/bindings/Math/random i64.reinterpret_f64 - local.tee $9 - local.get $9 + local.tee $5 + local.get $5 i64.eqz select - local.tee $9 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u - local.get $9 i64.xor i64.const -49064778989728563 i64.mul - local.tee $9 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u - local.get $9 i64.xor i64.const -4265267296055464877 i64.mul - local.tee $9 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u - local.get $9 i64.xor global.set $~lib/math/random_state0_64 global.get $~lib/math/random_state0_64 i64.const -1 i64.xor - local.tee $9 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u - local.get $9 i64.xor i64.const -49064778989728563 i64.mul - local.tee $9 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u - local.get $9 i64.xor i64.const -4265267296055464877 i64.mul - local.tee $9 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u - local.get $9 i64.xor global.set $~lib/math/random_state1_64 i32.const 1 @@ -24374,12 +24435,12 @@ i32.const 11 i32.const 8112 call $~lib/rt/__newArray - local.tee $0 + local.tee $2 i32.store offset=112 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24400,16 +24461,16 @@ unreachable end i32.const 8208 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8208 i32.store end - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 - i32.load offset=12 local.get $2 + i32.load offset=12 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24426,37 +24487,39 @@ local.get $1 i32.store offset=8 i32.const 0 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $3 local.get $1 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual drop i32.const 1 - local.get $0 local.get $1 + local.get $2 i32.eq br_if $__inlined_func$std/array/isArraysEqual drop + i32.const 0 + local.set $0 loop $for-loop|029 - local.get $2 - local.get $54 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if + local.get $2 local.get $0 - local.get $54 call $~lib/array/Array#__get - local.tee $8 - local.get $8 + local.tee $4 + local.get $4 f64.ne if (result i32) local.get $1 - local.get $54 + local.get $0 call $~lib/array/Array#__get - local.tee $8 - local.get $8 + local.tee $4 + local.get $4 f64.ne else i32.const 0 @@ -24464,20 +24527,20 @@ i32.eqz if i32.const 0 + local.get $2 local.get $0 - local.get $54 call $~lib/array/Array#__get local.get $1 - local.get $54 + local.get $0 call $~lib/array/Array#__get f64.ne br_if $__inlined_func$std/array/isArraysEqual drop end - local.get $54 + local.get $0 i32.const 1 i32.add - local.set $54 + local.set $0 br $for-loop|029 end end @@ -24503,7 +24566,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24524,7 +24587,7 @@ unreachable end i32.const 8384 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8384 i32.store @@ -24533,7 +24596,7 @@ i32.load offset=4 local.get $0 i32.load offset=12 - local.get $2 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24626,7 +24689,7 @@ i32.const 3 i32.const 8688 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24634,32 +24697,32 @@ i32.const 3 i32.const 8736 call $~lib/rt/__newArray - local.tee $5 + local.tee $9 i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $6 + local.tee $10 i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $7 + local.tee $11 i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $11 + local.tee $12 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $12 + local.tee $13 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $13 + local.tee $14 i32.store offset=160 local.get $0 call $std/array/assertSortedDefault @@ -24711,10 +24774,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 call $std/array/assertSortedDefault - local.get $4 - local.get $5 + local.get $3 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24726,10 +24789,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $10 call $std/array/assertSortedDefault - local.get $6 - local.get $5 + local.get $10 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24741,10 +24804,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $11 call $std/array/assertSortedDefault - local.get $7 - local.get $5 + local.get $11 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24756,10 +24819,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $12 call $std/array/assertSortedDefault - local.get $11 - local.get $5 + local.get $12 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24771,10 +24834,10 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $13 call $std/array/assertSortedDefault - local.get $12 - local.get $5 + local.get $13 + local.get $9 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24786,7 +24849,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $14 call $std/array/assertSortedDefault block $__inlined_func$std/array/assertStableSortedForComplexObjects global.get $~lib/memory/__stack_pointer @@ -24799,20 +24862,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i64.const 0 i64.store offset=16 - local.get $0 + local.get $1 global.get $std/array/inputStabArr - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -24821,74 +24884,74 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.store i32.const 0 - local.get $1 + local.get $2 i32.load offset=12 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i32.const 0 i32.gt_s select - local.set $5 - local.get $2 - local.get $4 - local.get $5 + local.set $9 + local.get $0 + local.get $3 + local.get $9 i32.sub - local.tee $2 + local.tee $0 i32.const 0 - local.get $2 + local.get $0 i32.const 0 i32.gt_s select - local.tee $2 + local.tee $3 i32.const 2 i32.const 20 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $10 i32.store - local.get $4 + local.get $10 i32.load offset=4 - local.set $6 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.get $5 + local.get $9 i32.const 2 i32.shl i32.add - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.const 2 i32.shl - local.set $2 + local.set $3 loop $while-continue|00 - local.get $2 - local.get $62 + local.get $3 + local.get $8 i32.gt_u if - local.get $6 - local.get $62 + local.get $0 + local.get $8 i32.add - local.get $1 - local.get $62 + local.get $2 + local.get $8 i32.add i32.load - local.tee $5 + local.tee $9 i32.store - local.get $5 + local.get $9 if - local.get $4 - local.get $5 + local.get $10 + local.get $9 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $62 + local.get $8 i32.const 4 i32.add - local.set $62 + local.set $8 br $while-continue|00 end end @@ -24897,20 +24960,19 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $4 + local.get $10 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8880 i32.store offset=4 - local.get $4 + local.get $10 i32.load offset=4 - local.get $4 + local.get $10 i32.load offset=12 i32.const 8880 call $~lib/util/sort/SORT - local.get $0 - local.get $4 + local.get $1 + local.get $10 i32.store offset=12 i32.const 1 local.set $0 @@ -24923,29 +24985,29 @@ local.set $1 loop $for-loop|02 local.get $1 - local.get $63 + local.get $7 i32.gt_s if block $for-break0 global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $63 + local.get $10 + local.get $7 call $~lib/array/Array#__get local.tee $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr - local.tee $5 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 - local.get $63 + local.get $3 + local.get $7 call $~lib/array/Array#__get - local.tee $5 + local.tee $3 i32.store offset=20 local.get $2 i32.load - local.get $5 + local.get $3 i32.load i32.ne if (result i32) @@ -24953,7 +25015,7 @@ else local.get $2 i32.load offset=4 - local.get $5 + local.get $3 i32.load offset=4 i32.ne end @@ -24962,10 +25024,10 @@ local.set $0 br $for-break0 end - local.get $63 + local.get $7 i32.const 1 i32.add - local.set $63 + local.set $7 br $for-loop|02 end end @@ -25037,10 +25099,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -25074,20 +25136,20 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=4 local.get $2 - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 if local.get $2 - local.get $4 + local.get $3 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $4 + local.get $3 i32.store offset=4 local.get $2 i32.const 32 @@ -25099,33 +25161,35 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 i32.store + i32.const 0 + local.set $0 loop $for-loop|0313 - local.get $29 + local.get $0 i32.const 2 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $1 + local.tee $3 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.const 1 - local.get $29 + local.get $0 i32.sub call $~lib/array/Array#__set local.get $2 - local.get $29 - local.get $1 + local.get $0 + local.get $3 call $~lib/array/Array<~lib/array/Array>#__set - local.get $29 + local.get $0 i32.const 1 i32.add - local.set $29 + local.set $0 br $for-loop|0313 end end @@ -25142,8 +25206,6 @@ i32.const 9040 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $60 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25190,20 +25252,20 @@ i32.const 2048 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=4 local.get $2 - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 if local.get $2 - local.get $4 + local.get $3 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $4 + local.get $3 i32.store offset=4 local.get $2 i32.const 2048 @@ -25218,8 +25280,10 @@ local.get $1 local.get $2 i32.store + i32.const 0 + local.set $1 loop $for-loop|039 - local.get $60 + local.get $1 i32.const 512 i32.lt_s if @@ -25232,18 +25296,18 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i32.const 0 i32.store - local.get $1 + local.get $3 i32.const 4 i32.const 28 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 511 - local.get $60 + local.get $1 i32.sub i32.store global.get $~lib/memory/__stack_pointer @@ -25251,16 +25315,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 local.get $2 - local.get $60 local.get $1 + local.get $3 call $~lib/array/Array<~lib/array/Array>#__set - local.get $60 + local.get $1 i32.const 1 i32.add - local.set $60 + local.set $1 br $for-loop|039 end end @@ -25282,7 +25346,7 @@ i32.const 31 i32.const 9264 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 7 @@ -25290,12 +25354,12 @@ i32.const 31 i32.const 9312 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=152 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $61 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25318,7 +25382,7 @@ unreachable end i32.const 9360 - local.set $61 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 9360 i32.store @@ -25335,17 +25399,16 @@ i32.const 0 i32.store block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load offset=12 - local.get $61 + local.get $2 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -25357,36 +25420,36 @@ i64.const 0 i64.store i32.const 1 - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.load offset=12 - local.set $4 + local.set $7 loop $for-loop|048 - local.get $0 - local.get $4 + local.get $1 + local.get $7 i32.lt_s if - local.get $1 local.get $0 + local.get $1 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $5 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store - local.get $1 local.get $0 + local.get $1 call $~lib/array/Array#__get - local.set $6 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $9 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 - local.get $61 + local.get $8 + local.get $9 + local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -25399,10 +25462,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|048 end end @@ -25441,10 +25504,10 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 - local.get $2 + local.tee $1 + local.get $3 i32.load offset=12 i32.ne if @@ -25455,8 +25518,8 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end - local.get $1 - local.get $2 + local.get $0 + local.get $3 i32.eq if global.get $~lib/memory/__stack_pointer @@ -25466,27 +25529,29 @@ i32.const 1 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end + i32.const 0 + local.set $2 loop $for-loop|045 - local.get $0 - local.get $28 + local.get $1 + local.get $2 i32.gt_s if - local.get $1 - local.get $28 + local.get $0 + local.get $2 call $~lib/array/Array#__get - local.set $4 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store + local.get $3 local.get $2 - local.get $28 call $~lib/array/Array#__get - local.set $5 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=4 - local.get $4 - local.get $5 + local.get $7 + local.get $8 call $~lib/string/String.__eq i32.eqz if @@ -25497,10 +25562,10 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end - local.get $28 + local.get $2 i32.const 1 i32.add - local.set $28 + local.set $2 br $for-loop|045 end end @@ -25520,7 +25585,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -25536,10 +25601,12 @@ i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $5 + local.tee $8 i32.store + i32.const 0 + local.set $0 loop $for-loop|049 - local.get $23 + local.get $0 i32.const 400 i32.lt_s if @@ -25547,9 +25614,7 @@ f64.const 32 f64.mul i32.trunc_f64_s - local.set $6 - i32.const 0 - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -25558,25 +25623,29 @@ i32.const 15652 i32.lt_s br_if $folding-inner1 + local.get $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 i32.const 9232 - local.set $1 - local.get $2 + local.set $0 + local.get $1 i32.const 9232 i32.store + i32.const 0 + local.set $1 loop $for-loop|023 - local.get $0 - local.get $6 + local.get $1 + local.get $9 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $10 i32.const 7696 i32.store offset=4 call $~lib/math/NativeMath.random @@ -25600,8 +25669,8 @@ i32.const 15652 i32.lt_s br_if $folding-inner1 - local.get $1 - local.set $2 + local.get $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -25618,16 +25687,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $1 + local.set $0 br $__inlined_func$~lib/string/String#charAt end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 local.get $11 i32.const 1 i32.shl @@ -25641,18 +25710,18 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $7 - local.get $2 - local.get $1 + local.get $10 + local.get $3 + local.get $0 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|023 end end @@ -25661,16 +25730,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $5 - local.get $23 - local.get $1 + local.get $8 + local.get $2 + local.get $0 call $~lib/array/Array<~lib/array/Array>#__set - local.get $23 + local.get $2 i32.const 1 i32.add - local.set $23 + local.set $0 br $for-loop|049 end end @@ -25678,13 +25747,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 + local.get $7 + local.get $8 i32.store offset=156 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25707,13 +25776,13 @@ unreachable end i32.const 9392 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9392 i32.store end - local.get $5 - local.get $1 + local.get $8 + local.get $0 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25724,24 +25793,21 @@ i32.const 35 i32.const 9424 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 local.get $0 + i32.store offset=164 + global.get $~lib/memory/__stack_pointer i32.const 9520 i32.store offset=168 i32.const 0 - local.set $0 - i32.const 0 - local.set $60 - local.get $1 + local.set $3 + local.get $0 i32.load offset=4 local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25754,10 +25820,10 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinBooleanArray - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $4 + local.tee $7 i32.const 0 i32.lt_s if @@ -25766,10 +25832,10 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinBooleanArray end - local.get $4 + local.get $7 i32.eqz if i32.const 9456 @@ -25777,7 +25843,7 @@ local.get $2 i32.load8_u select - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25785,34 +25851,36 @@ br $__inlined_func$~lib/util/string/joinBooleanArray end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.const 9516 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $8 i32.const 5 i32.add i32.mul i32.const 5 i32.add - local.tee $6 + local.tee $9 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|149 - local.get $4 - local.get $60 - i32.gt_s + local.get $3 + local.get $7 + i32.lt_s if local.get $2 - local.get $60 + local.get $3 i32.add i32.load8_u - local.tee $7 + local.tee $10 i32.eqz i32.const 4 i32.add @@ -25824,7 +25892,7 @@ i32.add i32.const 9456 i32.const 9488 - local.get $7 + local.get $10 select local.get $11 i32.const 1 @@ -25834,7 +25902,7 @@ local.get $11 i32.add local.set $0 - local.get $5 + local.get $8 if local.get $0 i32.const 1 @@ -25842,31 +25910,31 @@ local.get $1 i32.add i32.const 9520 - local.get $5 + local.get $8 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $8 i32.add local.set $0 end - local.get $60 + local.get $3 i32.const 1 i32.add - local.set $60 + local.set $3 br $for-loop|149 end end local.get $2 - local.get $4 + local.get $7 i32.add i32.load8_u local.tee $2 i32.eqz i32.const 4 i32.add - local.set $4 + local.set $3 local.get $0 i32.const 1 i32.shl @@ -25876,13 +25944,13 @@ i32.const 9488 local.get $2 select - local.get $4 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $6 + local.get $9 local.get $0 - local.get $4 + local.get $3 i32.add local.tee $0 i32.gt_s @@ -25890,7 +25958,7 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25901,15 +25969,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 9552 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9552 call $~lib/string/String.__eq i32.eqz @@ -26232,7 +26302,7 @@ i32.const 3 i32.const 13424 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store offset=144 local.get $0 call $~lib/array/Array#toString @@ -26299,7 +26369,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer @@ -26326,12 +26396,12 @@ i32.const 36 i32.const 13552 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -26340,23 +26410,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 9520 i32.store i32.const 0 - local.set $0 - i32.const 0 - local.set $61 - local.get $1 + local.set $2 + local.get $0 i32.load offset=4 - local.set $4 - local.get $1 + local.set $3 + local.get $0 i32.load offset=12 - local.set $1 - local.get $2 + local.set $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -26368,10 +26436,10 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $7 i32.const 0 i32.lt_s if @@ -26380,16 +26448,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $2 + local.get $7 i32.eqz if - local.get $4 + local.get $3 i32.load8_s call $~lib/util/number/itoa32 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26397,43 +26465,45 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.const 9516 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $8 i32.const 11 i32.add i32.mul i32.const 11 i32.add - local.tee $6 + local.tee $9 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|050 local.get $2 - local.get $61 - i32.gt_s + local.get $7 + i32.lt_s if local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $4 - local.get $61 + local.get $2 + local.get $3 i32.add i32.load8_s call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $8 if local.get $0 i32.const 1 @@ -26441,30 +26511,30 @@ local.get $1 i32.add i32.const 9520 - local.get $5 + local.get $8 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $8 i32.add local.set $0 end - local.get $61 + local.get $2 i32.const 1 i32.add - local.set $61 + local.set $2 br $for-loop|050 end end - local.get $6 + local.get $9 local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $2 - local.get $4 + local.get $3 + local.get $7 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -26476,7 +26546,7 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26487,19 +26557,20 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 13584 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13584 call $~lib/string/String.__eq i32.eqz @@ -26516,12 +26587,12 @@ i32.const 9 i32.const 13616 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -26530,23 +26601,21 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 9520 i32.store i32.const 0 - local.set $0 - i32.const 0 - local.set $61 - local.get $1 + local.set $2 + local.get $0 i32.load offset=4 - local.set $4 - local.get $1 + local.set $3 + local.get $0 i32.load offset=12 - local.set $1 - local.get $2 + local.set $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -26558,10 +26627,10 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $7 i32.const 0 i32.lt_s if @@ -26570,16 +26639,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $2 + local.get $7 i32.eqz if - local.get $4 + local.get $3 i32.load16_u call $~lib/util/number/utoa32 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26587,45 +26656,47 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.const 9516 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $8 i32.const 10 i32.add i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $9 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|051 local.get $2 - local.get $61 - i32.gt_s + local.get $7 + i32.lt_s if local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $61 + local.get $2 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $8 if local.get $0 i32.const 1 @@ -26633,32 +26704,32 @@ local.get $1 i32.add i32.const 9520 - local.get $5 + local.get $8 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $8 i32.add local.set $0 end - local.get $61 + local.get $2 i32.const 1 i32.add - local.set $61 + local.set $2 br $for-loop|051 end end - local.get $6 + local.get $9 local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $2 + local.get $7 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u call $~lib/util/number/itoa_buffered @@ -26670,7 +26741,7 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26681,19 +26752,20 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 13648 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13648 call $~lib/string/String.__eq i32.eqz @@ -26738,10 +26810,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13744 i32.store offset=8 local.get $0 @@ -26789,10 +26860,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13888 i32.store offset=8 local.get $0 @@ -26914,10 +26984,10 @@ i32.const 9520 i32.store i32.const 0 - local.set $61 + local.set $2 local.get $1 i32.load offset=4 - local.set $2 + local.set $3 local.get $1 i32.load offset=12 local.set $1 @@ -26940,7 +27010,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $0 + local.tee $1 i32.const 0 i32.lt_s if @@ -26949,14 +27019,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load local.tee $0 i32.store @@ -26967,7 +27037,7 @@ else i32.const 9232 end - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -26975,7 +27045,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9232 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9232 i32.store offset=4 @@ -26983,74 +27053,74 @@ i32.load i32.const 1 i32.shr_u - local.set $4 + local.set $7 loop $for-loop|052 - local.get $0 - local.get $61 + local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $61 + local.get $2 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load - local.tee $5 + local.tee $8 i32.store - local.get $5 + local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 call $~lib/array/Array#toString - local.set $5 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=8 - local.get $1 - local.get $5 + local.get $0 + local.get $8 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $4 + local.get $7 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 9520 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $61 + local.get $2 i32.const 1 i32.add - local.set $61 + local.set $2 br $for-loop|052 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $~lib/array/Array#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27063,13 +27133,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 14304 i32.store offset=8 - local.get $1 + local.get $0 i32.const 14304 call $~lib/string/String.__eq i32.eqz @@ -27129,10 +27198,10 @@ i32.const 9520 i32.store i32.const 0 - local.set $61 + local.set $2 local.get $1 i32.load offset=4 - local.set $2 + local.set $3 local.get $1 i32.load offset=12 local.set $1 @@ -27155,7 +27224,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $0 + local.tee $1 i32.const 0 i32.lt_s if @@ -27164,14 +27233,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load local.tee $0 i32.store @@ -27182,7 +27251,7 @@ else i32.const 9232 end - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27190,7 +27259,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9232 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9232 i32.store offset=4 @@ -27198,74 +27267,74 @@ i32.load i32.const 1 i32.shr_u - local.set $4 + local.set $7 loop $for-loop|053 - local.get $0 - local.get $61 + local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $61 + local.get $2 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load - local.tee $5 + local.tee $8 i32.store - local.get $5 + local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 call $~lib/array/Array#toString - local.set $5 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=8 - local.get $1 - local.get $5 + local.get $0 + local.get $8 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $4 + local.get $7 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 9520 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $61 + local.get $2 i32.const 1 i32.add - local.set $61 + local.set $2 br $for-loop|053 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $~lib/array/Array#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27278,13 +27347,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 14304 i32.store offset=8 - local.get $1 + local.get $0 i32.const 14304 call $~lib/string/String.__eq i32.eqz @@ -27352,10 +27420,10 @@ i32.const 9520 i32.store i32.const 0 - local.set $61 + local.set $2 local.get $1 i32.load offset=4 - local.set $2 + local.set $3 local.get $1 i32.load offset=12 local.set $1 @@ -27378,7 +27446,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $0 + local.tee $1 i32.const 0 i32.lt_s if @@ -27387,14 +27455,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load local.tee $0 i32.store @@ -27405,7 +27473,7 @@ else i32.const 9232 end - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27413,7 +27481,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end i32.const 9232 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9232 i32.store offset=4 @@ -27421,74 +27489,74 @@ i32.load i32.const 1 i32.shr_u - local.set $4 + local.set $7 loop $for-loop|054 - local.get $0 - local.get $61 + local.get $1 + local.get $2 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $61 + local.get $2 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load - local.tee $5 + local.tee $8 i32.store - local.get $5 + local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 call $~lib/array/Array<~lib/array/Array>#toString - local.set $5 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.store offset=8 - local.get $1 - local.get $5 + local.get $0 + local.get $8 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $4 + local.get $7 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 9520 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end - local.get $61 + local.get $2 i32.const 1 i32.add - local.set $61 + local.set $2 br $for-loop|054 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $~lib/array/Array<~lib/array/Array>#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27501,13 +27569,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 13008 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13008 call $~lib/string/String.__eq i32.eqz @@ -27570,9 +27637,9 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $0 + local.tee $1 i32.store offset=128 - local.get $0 + local.get $1 i32.load offset=12 i32.const 10 i32.ne @@ -27585,16 +27652,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|7 - local.get $1 + local.get $0 i32.const 10 i32.lt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array#__get - local.get $1 + local.get $0 i32.ne if i32.const 0 @@ -27604,10 +27671,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|7 end end @@ -27673,134 +27740,140 @@ i64.store local.get $1 i32.load offset=4 - local.set $2 + local.set $7 local.get $1 i32.load offset=12 - local.set $1 + local.set $8 + i32.const 0 + local.set $2 + i32.const 0 + local.set $0 loop $for-loop|0317 - local.get $1 - local.get $59 - i32.gt_s + local.get $0 + local.get $8 + i32.lt_s if - local.get $59 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $7 i32.add i32.load - local.tee $4 + local.tee $1 if (result i32) - local.get $4 + local.get $1 i32.load offset=12 else i32.const 0 end - local.get $27 + local.get $2 i32.add - local.set $27 - local.get $59 + local.set $2 + local.get $0 i32.const 1 i32.add - local.set $59 + local.set $0 br $for-loop|0317 end end global.get $~lib/memory/__stack_pointer - local.get $27 + local.get $2 i32.const 2 i32.shl - local.tee $4 + local.tee $0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 31 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $10 i32.store offset=4 - local.get $6 - local.get $27 + local.get $10 + local.get $2 i32.store offset=12 - local.get $6 - local.get $4 + local.get $10 + local.get $0 i32.store offset=8 - local.get $6 - local.get $5 + local.get $10 + local.get $9 i32.store offset=4 - local.get $6 - local.get $5 + local.get $10 + local.get $9 i32.store - local.get $5 + local.get $9 if - local.get $6 - local.get $5 + local.get $10 + local.get $9 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end i32.const 0 - local.set $59 + local.set $1 + i32.const 0 + local.set $0 loop $for-loop|1320 - local.get $1 - local.get $59 - i32.gt_s + local.get $0 + local.get $8 + i32.lt_s if - local.get $59 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $7 i32.add i32.load - local.tee $4 + local.tee $11 if - local.get $3 - local.get $5 + local.get $1 + local.get $9 i32.add - local.get $4 + local.get $11 i32.load offset=4 - local.get $4 + local.get $11 i32.load offset=12 i32.const 2 i32.shl - local.tee $4 + local.tee $11 call $~lib/memory/memory.copy - local.get $3 - local.get $4 + local.get $1 + local.get $11 i32.add - local.set $3 + local.set $1 end - local.get $59 + local.get $0 i32.const 1 i32.add - local.set $59 + local.set $0 br $for-loop|1320 end end i32.const 0 - local.set $59 + local.set $0 loop $for-loop|2323 - local.get $27 - local.get $59 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if - local.get $59 + local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $9 i32.add i32.load local.tee $1 if - local.get $5 + local.get $9 local.get $1 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $59 + local.get $0 i32.const 1 i32.add - local.set $59 + local.set $0 br $for-loop|2323 end end @@ -27808,7 +27881,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $10 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27818,7 +27891,7 @@ call $~lib/rt/__newArray local.tee $0 i32.store offset=148 - local.get $6 + local.get $10 i32.load offset=12 i32.const 8 i32.ne @@ -27838,7 +27911,7 @@ local.get $1 i32.gt_s if - local.get $6 + local.get $10 local.get $1 call $~lib/array/Array#__get local.set $2 @@ -27964,76 +28037,78 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 local.get $1 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 2 i32.const 26 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $7 i32.store - local.get $3 + local.get $7 i32.load offset=4 - local.set $4 + local.set $8 + i32.const 0 + local.set $0 loop $for-loop|065 - local.get $2 + local.get $3 local.get $1 i32.load offset=12 - local.tee $5 - local.get $2 - local.get $5 + local.tee $9 + local.get $3 + local.get $9 i32.lt_s select - local.get $26 + local.get $0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $26 + local.tee $9 + local.get $0 i32.const 2 i32.shl - local.tee $6 + local.tee $10 local.get $1 i32.load offset=4 i32.add i32.load - local.tee $7 + local.tee $11 i32.store offset=4 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $26 + local.get $9 + local.get $11 + local.get $0 local.get $1 i32.const 15120 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - local.tee $5 + local.tee $9 i32.store offset=8 - local.get $4 - local.get $6 + local.get $8 + local.get $10 i32.add - local.get $5 + local.get $9 i32.store - local.get $5 + local.get $9 if - local.get $3 - local.get $5 + local.get $7 + local.get $9 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $26 + local.get $0 i32.const 1 i32.add - local.set $26 + local.set $0 br $for-loop|065 end end @@ -28042,9 +28117,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.store - local.get $3 + local.get $7 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 i32.store offset=144 @@ -28455,7 +28530,6 @@ ) (func $std/array/internalCapacity (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28473,10 +28547,9 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.tee $2 i32.const 0 i32.store - local.get $2 + local.get $1 local.get $0 i32.load local.tee $0 @@ -29833,16 +29906,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i64.const 0 i64.store - local.get $6 + local.get $5 i32.const 0 i32.store offset=8 local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $5 i32.const 0 i32.lt_s if @@ -29853,7 +29926,7 @@ i32.const 9232 return end - local.get $6 + local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -29874,21 +29947,21 @@ end loop $for-loop|0 local.get $1 - local.get $5 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $0 i32.add i32.load - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 + local.get $6 if - local.get $7 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -29898,40 +29971,42 @@ i32.add local.set $3 end - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|0 end end + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 + local.get $5 local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 + local.tee $3 i32.mul - local.get $3 i32.add i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $6 i32.store offset=8 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 + local.get $4 local.get $5 - local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $0 @@ -29941,10 +30016,10 @@ i32.store offset=4 local.get $7 if - local.get $4 + local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $6 i32.add local.get $7 local.get $7 @@ -29957,37 +30032,37 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $1 local.get $7 i32.add - local.set $4 + local.set $1 end - local.get $1 + local.get $3 if - local.get $4 + local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $6 i32.add local.get $2 - local.get $1 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $4 + local.get $3 i32.add - local.set $4 + local.set $1 end - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $0 @@ -29997,10 +30072,10 @@ i32.store offset=4 local.get $0 if - local.get $4 + local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $6 i32.add local.get $0 local.get $0 @@ -30017,7 +30092,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $6 ) (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) (local $1 i32) @@ -30049,104 +30124,108 @@ local.set $4 local.get $0 i32.load offset=12 - local.set $5 + local.set $3 + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $2 - local.get $5 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 + local.get $0 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.tee $0 + local.tee $2 if (result i32) - local.get $0 + local.get $2 i32.load offset=12 else i32.const 0 end - local.get $3 + local.get $1 i32.add - local.set $3 - local.get $2 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 2 i32.shl - local.tee $2 + local.tee $0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 - local.get $3 + local.get $2 + local.get $1 i32.store offset=12 - local.get $0 local.get $2 - i32.store offset=8 local.get $0 - local.get $6 + i32.store offset=8 + local.get $2 + local.get $5 i32.store offset=4 - local.get $0 - local.get $6 + local.get $2 + local.get $5 i32.store - local.get $6 + local.get $5 if - local.get $0 - local.get $6 + local.get $2 + local.get $5 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end i32.const 0 - local.set $2 + local.set $1 + i32.const 0 + local.set $0 loop $for-loop|1 - local.get $2 - local.get $5 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 + local.get $0 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.tee $3 + local.tee $6 if local.get $1 - local.get $6 + local.get $5 i32.add - local.get $3 + local.get $6 i32.load offset=4 - local.get $3 + local.get $6 i32.load offset=12 i32.const 2 i32.shl - local.tee $3 + local.tee $6 call $~lib/memory/memory.copy local.get $1 - local.get $3 + local.get $6 i32.add local.set $1 end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|1 end end @@ -30154,7 +30233,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) (func $export:~lib/array/Array#get:dataStart (param $0 i32) (result i32) (local $1 i32) @@ -30579,19 +30658,18 @@ i32.store offset=4 block $__inlined_func$~lib/array/Array#findLastIndex (result i32) local.get $0 - local.tee $2 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $2 loop $for-loop|0 - local.get $0 + local.get $2 i32.const 0 i32.ge_s if - local.get $2 - i32.load offset=4 local.get $0 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add @@ -30599,19 +30677,19 @@ local.set $3 i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $2 local.get $3 - local.get $0 local.get $2 + local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex drop - local.get $0 + local.get $2 i32.const 1 i32.sub - local.set $0 + local.set $2 br $for-loop|0 end end @@ -30652,8 +30730,7 @@ select local.get $1 i32.add - local.set $1 - local.get $1 + local.tee $1 local.get $2 i32.ge_u if @@ -31929,6 +32006,7 @@ local.get $0 i32.store local.get $0 + local.tee $1 i32.load offset=4 local.set $2 local.get $0 @@ -31937,6 +32015,8 @@ i32.const 1 i32.gt_u if + i32.const 0 + local.set $0 local.get $4 i32.const 1 i32.shr_u @@ -31946,11 +32026,11 @@ i32.sub local.set $5 loop $while-continue|0 - local.get $1 + local.get $0 local.get $3 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $2 @@ -31960,7 +32040,7 @@ local.set $4 local.get $6 local.get $5 - local.get $1 + local.get $0 i32.sub i32.const 2 i32.shl @@ -31972,10 +32052,10 @@ local.get $6 local.get $4 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end @@ -31984,7 +32064,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 ) (func $export:~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -32494,37 +32574,36 @@ i32.store offset=4 block $__inlined_func$~lib/array/Array#findLastIndex (result i32) local.get $0 - local.tee $2 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $2 loop $for-loop|0 - local.get $0 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 local.get $2 + local.get $0 i32.load offset=4 i32.add i32.load8_u local.set $3 i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $2 local.get $3 - local.get $0 local.get $2 + local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex drop - local.get $0 + local.get $2 i32.const 1 i32.sub - local.set $0 + local.set $2 br $for-loop|0 end end @@ -32565,8 +32644,7 @@ select local.get $1 i32.add - local.set $1 - local.get $1 + local.tee $1 local.get $2 i32.ge_u if @@ -33074,10 +33152,10 @@ local.get $4 i32.lt_s select - local.set $5 + local.set $3 local.get $0 i32.load offset=4 - local.tee $3 + local.tee $5 local.get $1 i32.const 0 i32.lt_s @@ -33101,6 +33179,7 @@ end local.tee $1 i32.add + local.get $5 local.get $2 i32.const 0 i32.lt_s @@ -33123,14 +33202,13 @@ select end local.tee $2 - local.get $3 i32.add - local.get $5 + local.get $3 i32.const 0 i32.lt_s if (result i32) + local.get $3 local.get $4 - local.get $5 i32.add local.tee $3 i32.const 0 @@ -33139,11 +33217,11 @@ i32.gt_s select else - local.get $5 + local.get $3 local.get $4 + local.get $3 local.get $4 - local.get $5 - i32.gt_s + i32.lt_s select end local.get $2 @@ -34317,21 +34395,20 @@ i32.const 0 i32.store local.get $0 - local.tee $2 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex loop $for-loop|0 - local.get $0 + local.get $2 i32.const 0 i32.ge_s if global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 local.get $0 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add @@ -34341,8 +34418,8 @@ i32.const 3 global.set $~argumentsLength local.get $3 - local.get $0 local.get $2 + local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -34353,10 +34430,10 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex end - local.get $0 + local.get $2 i32.const 1 i32.sub - local.set $0 + local.set $2 br $for-loop|0 end end @@ -34365,13 +34442,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $0 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 return end i32.const 32064 @@ -34862,13 +34939,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 local.get $0 i32.store - local.get $4 + local.get $3 local.get $1 i32.store offset=4 - local.get $4 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -34881,7 +34958,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $6 + local.tee $3 local.get $1 i32.load offset=12 i32.const 0 @@ -34906,24 +34983,26 @@ i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.load offset=4 local.set $5 - local.get $6 + local.get $3 i32.const 2 i32.shl - local.set $6 + local.set $7 local.get $0 i32.load offset=4 + local.set $3 + i32.const 0 local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 + local.get $0 + local.get $7 i32.lt_u if - local.get $3 + local.get $0 local.get $5 i32.add local.get $0 @@ -34934,20 +35013,20 @@ i32.store local.get $8 if - local.get $7 + local.get $6 local.get $8 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $0 i32.const 4 i32.add - local.set $3 + local.set $0 br $for-loop|0 end end local.get $5 - local.get $6 + local.get $7 i32.add local.set $0 local.get $1 @@ -34973,7 +35052,7 @@ i32.store local.get $4 if - local.get $7 + local.get $6 local.get $4 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link @@ -34993,7 +35072,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 return end i32.const 32064 @@ -35853,6 +35932,7 @@ local.get $0 i32.store local.get $0 + local.tee $1 i32.load offset=4 local.set $2 local.get $0 @@ -35873,6 +35953,8 @@ i32.const 1 i32.gt_u if + i32.const 0 + local.set $0 local.get $4 i32.const 1 i32.shr_u @@ -35882,12 +35964,12 @@ i32.sub local.set $4 loop $while-continue|0 - local.get $1 + local.get $0 local.get $5 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $2 @@ -35898,7 +35980,7 @@ i32.store local.get $6 local.get $4 - local.get $1 + local.get $0 i32.sub i32.const 2 i32.shl @@ -35910,10 +35992,10 @@ local.get $6 local.get $3 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end @@ -35926,7 +36008,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 return end i32.const 32064 diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 313519ebbf..006974fb24 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -194,8 +194,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -819,43 +817,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18228 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -866,221 +937,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18228 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18228 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1232 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18228 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18228 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1504 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1504 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2621,13 +2617,12 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 memory.size @@ -2890,6 +2885,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2898,27 +2894,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2929,7 +2924,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store i32.const 8 @@ -2939,28 +2934,28 @@ i32.const 1632 i32.const 8 call $~lib/memory/memory.copy - local.get $0 + local.get $1 local.get $2 i32.store i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 local.get $2 i32.store local.get $2 if - local.get $0 + local.get $1 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $1 local.get $2 i32.store offset=4 - local.get $0 + local.get $1 i32.const 8 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2968,7 +2963,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2979,30 +2974,30 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 2 call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load local.tee $0 i32.store offset=16 @@ -3038,12 +3033,12 @@ local.get $2 i32.const 0 i32.store offset=8 + local.get $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 - local.get $1 - i32.lt_u + i32.gt_u local.get $1 i32.const 1073741820 i32.gt_u diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index d177891f99..63bf8dfbd3 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -200,8 +200,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -825,43 +823,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18172 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -872,221 +943,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18172 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18172 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1232 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18172 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18172 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1504 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1504 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2447,10 +2443,9 @@ br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $2 - local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 memory.size @@ -2504,7 +2499,8 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2559,7 +2555,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2602,13 +2597,12 @@ i32.const 95 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.load - local.tee $2 + local.tee $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $2 local.get $0 i32.load offset=4 local.get $0 @@ -4139,7 +4133,7 @@ i32.load offset=4 local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1696 diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 52ba46d628..d8b09360f6 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -560,8 +560,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -1185,43 +1183,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 23948 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1232,221 +1303,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 23948 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1264 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 23948 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1264 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 23948 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 23948 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1536 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1536 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3580,7 +3576,6 @@ i32.store block $__inlined_func$~lib/string/String#concat local.get $0 - local.tee $2 i32.const 20 i32.sub i32.load offset=16 @@ -3599,7 +3594,7 @@ i32.shl local.tee $4 i32.add - local.tee $0 + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3607,20 +3602,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 - local.set $0 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 local.get $2 + local.get $0 local.get $3 call $~lib/memory/memory.copy - local.get $0 + local.get $2 local.get $3 i32.add local.get $1 @@ -3631,7 +3626,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $0 + local.get $2 ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -3830,20 +3825,20 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) local.get $0 local.tee $2 i32.load offset=8 - local.tee $0 - i32.const 2 - i32.shr_u + local.set $0 local.get $2 i32.load offset=12 local.tee $5 i32.const 1 i32.add local.tee $4 - i32.lt_u + local.get $0 + i32.const 2 + i32.shr_u + i32.gt_u if local.get $4 i32.const 268435455 @@ -3880,14 +3875,13 @@ local.get $3 i32.gt_u select - local.tee $7 + local.tee $6 local.get $2 i32.load - local.tee $6 - local.tee $0 + local.tee $3 i32.const 20 i32.sub - local.tee $8 + local.tee $7 i32.load i32.const -4 i32.and @@ -3895,31 +3889,31 @@ i32.sub i32.le_u if - local.get $8 local.get $7 + local.get $6 i32.store offset=16 + local.get $3 + local.set $0 br $__inlined_func$~lib/rt/itcms/__renew end + local.get $6 local.get $7 - local.get $8 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $3 - local.get $0 + local.tee $0 + local.get $3 + local.get $6 local.get $7 - local.get $8 i32.load offset=16 - local.tee $0 - local.get $0 + local.tee $7 + local.get $6 local.get $7 - i32.gt_u + i32.lt_u select call $~lib/memory/memory.copy - local.get $3 - local.set $0 end local.get $0 - local.get $6 + local.get $3 i32.ne if local.get $2 @@ -3937,7 +3931,7 @@ end end local.get $2 - local.get $7 + local.get $6 i32.store offset=8 end local.get $2 @@ -4421,7 +4415,6 @@ if global.get $~lib/memory/__stack_pointer local.tee $4 - local.get $4 i32.const 1616 i32.const 1648 local.get $3 @@ -4431,9 +4424,9 @@ local.get $1 i32.const 31 i32.shr_s - local.tee $4 + local.tee $5 local.get $1 - local.get $4 + local.get $5 i32.add i32.xor call $~lib/number/I32#toString @@ -4451,6 +4444,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $4 local.get $3 local.get $1 call $~lib/string/String.__concat @@ -4569,10 +4563,9 @@ call $~lib/number/I32#toString local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $3 i32.store offset=68 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=76 local.get $3 @@ -4617,10 +4610,9 @@ call $~lib/number/I32#toString local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $3 i32.store offset=52 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=60 local.get $3 @@ -4665,10 +4657,9 @@ call $~lib/number/I32#toString local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $3 i32.store offset=36 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=44 local.get $3 @@ -4711,10 +4702,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=12 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=28 local.get $0 @@ -4975,7 +4965,6 @@ (local $1 i64) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -5025,10 +5014,9 @@ call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=32 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=36 local.get $2 @@ -5044,9 +5032,9 @@ local.get $2 i32.const 3520 call $~lib/string/String.__concat - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=16 i64.const 3600000 i64.const 0 @@ -5064,23 +5052,22 @@ i32.const 60000 i32.div_s call $~lib/number/I32#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 + local.get $3 i32.store offset=24 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=32 - local.get $2 + local.get $3 i32.const 2 call $~lib/string/String#padStart - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 local.get $3 + i32.store offset=20 local.get $2 + local.get $3 call $~lib/string/String.__concat local.set $2 global.get $~lib/memory/__stack_pointer @@ -5114,10 +5101,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=16 local.get $0 @@ -5400,10 +5386,9 @@ call $~lib/number/I32#toString local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $3 i32.store offset=60 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=68 local.get $3 @@ -5448,10 +5433,9 @@ call $~lib/number/I32#toString local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $4 local.get $3 i32.store offset=44 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=52 local.get $3 @@ -5496,10 +5480,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=28 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=36 local.get $0 @@ -9401,10 +9384,6 @@ i32.shl local.tee $2 i32.eqz - local.get $1 - i32.const 1 - i32.shl - local.tee $1 local.get $0 i32.const 20 i32.sub @@ -9413,8 +9392,12 @@ i32.shr_u i32.const 1 i32.shl - local.tee $6 - i32.lt_u + local.tee $4 + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + i32.gt_u i32.or if global.get $~lib/memory/__stack_pointer @@ -9428,18 +9411,18 @@ local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store local.get $2 local.get $1 - local.get $6 + local.get $4 i32.sub - local.tee $5 + local.tee $6 i32.lt_u if - local.get $5 + local.get $6 local.get $2 - local.get $5 + local.get $6 i32.const 2 i32.sub local.get $2 @@ -9459,7 +9442,7 @@ i32.lt_u if local.get $3 - local.get $4 + local.get $5 i32.add i32.const 1872 local.get $2 @@ -9471,29 +9454,29 @@ br $while-continue|0 end end - local.get $4 + local.get $5 local.get $8 i32.add i32.const 1872 local.get $1 call $~lib/memory/memory.copy else - local.get $4 - i32.const 1872 local.get $5 + i32.const 1872 + local.get $6 call $~lib/memory/memory.copy end - local.get $4 local.get $5 + local.get $6 i32.add local.get $0 - local.get $6 + local.get $4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 789f5bba7a..7b1e969c99 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -208,8 +208,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -833,43 +831,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18404 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -880,221 +951,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18404 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18404 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18404 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18404 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1780,7 +1776,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $1 local.get $8 i32.extend8_s i32.const -1028477379 @@ -1792,24 +1787,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -2639,7 +2635,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) local.get $0 i32.load offset=8 local.tee $4 @@ -2661,9 +2656,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i32.load - local.set $7 local.get $1 i32.const 8 local.get $1 @@ -2672,8 +2664,11 @@ select local.get $2 i32.shl - local.set $6 - block $__inlined_func$~lib/rt/itcms/__renew + local.set $5 + local.get $0 + i32.load + local.tee $2 + block $__inlined_func$~lib/rt/itcms/__renew (result i32) local.get $3 if local.get $4 @@ -2686,19 +2681,18 @@ i32.lt_u select local.tee $1 - local.get $6 + local.get $5 local.get $1 - local.get $6 + local.get $5 i32.gt_u select - local.set $6 + local.set $5 end - local.get $6 - local.get $7 - local.tee $1 + local.get $5 + local.get $2 i32.const 20 i32.sub - local.tee $2 + local.tee $1 i32.load i32.const -4 i32.and @@ -2706,84 +2700,85 @@ i32.sub i32.le_u if - local.get $2 - local.get $6 + local.get $1 + local.get $5 i32.store offset=16 + local.get $2 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $6 - local.get $2 + local.get $5 + local.get $1 i32.load offset=12 call $~lib/rt/itcms/__new - local.set $3 - local.get $6 - local.get $2 + local.set $6 + local.get $5 + local.get $1 i32.load offset=16 - local.tee $2 - local.get $2 - local.get $6 + local.tee $1 + local.get $1 + local.get $5 i32.gt_u select - local.set $8 + local.set $7 block $~lib/util/memory/memmove|inlined.0 - local.get $3 - local.tee $2 - local.get $1 + local.get $2 + local.get $6 + local.tee $1 i32.eq br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 local.get $2 + local.get $1 i32.sub - local.get $8 + local.get $7 i32.sub i32.const 0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.sub i32.le_u if - local.get $2 local.get $1 - local.get $8 + local.get $2 + local.get $7 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $1 local.get $2 - i32.gt_u + i32.lt_u if - local.get $1 + local.get $2 i32.const 7 i32.and - local.get $2 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $2 + local.get $1 i32.const 7 i32.and if - local.get $8 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $8 + local.get $7 i32.const 1 i32.sub - local.set $8 - local.get $2 - local.tee $5 + local.set $7 + local.get $1 + local.tee $3 i32.const 1 i32.add - local.set $2 - local.get $1 + local.set $1 + local.get $2 local.tee $4 i32.const 1 i32.add - local.set $1 - local.get $5 + local.set $2 + local.get $3 local.get $4 i32.load8_u i32.store8 @@ -2791,81 +2786,81 @@ end end loop $while-continue|1 - local.get $8 + local.get $7 i32.const 8 i32.ge_u if - local.get $2 local.get $1 + local.get $2 i64.load i64.store - local.get $8 + local.get $7 i32.const 8 i32.sub - local.set $8 - local.get $2 - i32.const 8 - i32.add - local.set $2 + local.set $7 local.get $1 i32.const 8 i32.add local.set $1 + local.get $2 + i32.const 8 + i32.add + local.set $2 br $while-continue|1 end end end loop $while-continue|2 - local.get $8 + local.get $7 if - local.get $2 - local.tee $5 + local.get $1 + local.tee $3 i32.const 1 i32.add - local.set $2 - local.get $1 + local.set $1 + local.get $2 local.tee $4 i32.const 1 i32.add - local.set $1 - local.get $5 + local.set $2 + local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $8 + local.get $7 i32.const 1 i32.sub - local.set $8 + local.set $7 br $while-continue|2 end end else - local.get $1 + local.get $2 i32.const 7 i32.and - local.get $2 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.add i32.const 7 i32.and if - local.get $8 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $8 + local.get $7 i32.const 1 i32.sub - local.tee $8 - local.get $2 - i32.add + local.tee $7 local.get $1 - local.get $8 + i32.add + local.get $2 + local.get $7 i32.add i32.load8_u i32.store8 @@ -2873,18 +2868,18 @@ end end loop $while-continue|4 - local.get $8 + local.get $7 i32.const 8 i32.ge_u if - local.get $8 + local.get $7 i32.const 8 i32.sub - local.tee $8 - local.get $2 - i32.add + local.tee $7 local.get $1 - local.get $8 + i32.add + local.get $2 + local.get $7 i32.add i64.load i64.store @@ -2893,16 +2888,16 @@ end end loop $while-continue|5 - local.get $8 + local.get $7 if - local.get $8 + local.get $7 i32.const 1 i32.sub - local.tee $8 - local.get $2 - i32.add + local.tee $7 local.get $1 - local.get $8 + i32.add + local.get $2 + local.get $7 i32.add i32.load8_u i32.store8 @@ -2911,11 +2906,9 @@ end end end - local.get $3 - local.set $1 + local.get $6 end - local.get $1 - local.get $7 + local.tee $1 i32.ne if local.get $0 @@ -2932,7 +2925,7 @@ end end local.get $0 - local.get $6 + local.get $5 i32.store offset=8 end ) @@ -3114,7 +3107,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -3125,24 +3117,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -3392,16 +3385,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $3 i64.const 0 i64.store - local.get $6 + local.get $3 i64.const 0 i64.store offset=8 - local.get $6 + local.get $3 i32.const 0 i32.store offset=16 - local.get $6 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3417,61 +3410,61 @@ i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 if - local.get $4 local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $5 i32.const 3 i32.store offset=4 - local.get $4 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store offset=8 - local.get $5 + local.get $4 if - local.get $4 local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $5 i32.const 4 i32.store offset=12 - local.get $4 + local.get $5 i32.const 0 i32.store offset=16 - local.get $4 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $4 - i32.store + local.get $3 + local.get $5 + i32.store loop $for-loop|1 local.get $2 i32.extend8_s i32.const 100 i32.lt_s if - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -3481,36 +3474,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -3518,9 +3511,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load8_u - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq @@ -3529,14 +3522,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 if i32.const 0 i32.const 1568 @@ -3545,19 +3538,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 local.get $2 i32.extend8_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -3567,36 +3560,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -3604,9 +3597,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load8_u - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq @@ -3615,14 +3608,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -3634,7 +3627,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -3657,7 +3650,7 @@ br $for-loop|1 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -3677,12 +3670,12 @@ i32.const 100 i32.lt_s if - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -3692,36 +3685,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -3729,9 +3722,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load8_u - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq @@ -3740,14 +3733,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -3759,7 +3752,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -3775,19 +3768,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 local.get $2 i32.extend8_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -3797,36 +3790,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -3834,9 +3827,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load8_u - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq @@ -3845,14 +3838,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -3864,7 +3857,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -3887,7 +3880,7 @@ br $for-loop|3 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -3900,7 +3893,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3909,17 +3902,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $3 i32.const 0 i32.store - local.get $4 - local.tee $9 + local.get $5 i32.load offset=8 local.set $6 - local.get $4 + local.get $5 i32.load offset=16 - local.set $5 - local.get $7 + local.set $7 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3928,28 +3920,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $4 i32.store - local.get $8 + local.get $4 i32.const 0 i32.store - local.get $8 + local.get $4 i32.const 0 i32.store offset=4 - local.get $8 + local.get $4 i32.const 0 i32.store offset=8 - local.get $8 + local.get $4 i32.const 0 i32.store offset=12 - local.get $5 + local.get $7 i32.const 1073741820 i32.gt_u if @@ -3961,45 +3953,45 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 8 - local.get $5 + local.get $7 i32.const 8 i32.gt_u select - local.tee $4 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $9 i32.store offset=4 - local.get $8 - local.get $2 + local.get $4 + local.get $9 i32.store - local.get $2 + local.get $9 if - local.get $8 - local.get $2 + local.get $4 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $8 - local.get $2 + local.get $4 + local.get $9 i32.store offset=4 - local.get $8 local.get $4 - i32.store offset=8 local.get $8 - local.get $5 + i32.store offset=8 + local.get $4 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $8 + local.get $3 + local.get $4 i32.store loop $for-loop|0 local.get $1 - local.get $5 + local.get $7 i32.lt_s if local.get $1 @@ -4007,21 +3999,21 @@ i32.mul local.get $6 i32.add - local.tee $2 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $8 + local.get $4 + local.get $0 local.get $3 - local.get $2 i32.load8_s call $~lib/array/Array#__set - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 end local.get $1 i32.const 1 @@ -4030,25 +4022,25 @@ br $for-loop|0 end end - local.get $8 - local.get $3 + local.get $4 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $8 - local.get $3 + local.get $4 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 - local.get $8 + local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 call $~lib/map/Map#values - local.tee $15 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4067,63 +4059,64 @@ i32.const 24 i32.const 6 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store local.get $1 if - local.get $7 + local.get $6 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $7 + local.get $6 i32.const 3 i32.store offset=4 - local.get $7 + local.get $6 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 local.get $1 if - local.get $7 + local.get $6 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $7 + local.get $6 i32.const 4 i32.store offset=12 - local.get $7 + local.get $6 i32.const 0 i32.store offset=16 - local.get $7 + local.get $6 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $17 + local.tee $15 i32.store offset=16 + i32.const 0 + local.set $1 loop $for-loop|4 - local.get $8 + local.get $4 i32.load offset=12 - local.get $0 + local.get $1 i32.gt_s if - local.get $0 - local.tee $6 - local.get $8 + local.get $4 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1728 @@ -4132,22 +4125,22 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $8 + local.get $1 + local.get $4 i32.load offset=4 i32.add i32.load8_s - local.set $0 - local.get $15 - local.get $6 + local.set $7 + local.get $13 + local.get $1 call $~lib/array/Array#__get - local.set $16 - local.get $9 + local.set $14 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $7 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4181,38 +4174,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -4224,11 +4217,11 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $16 + local.get $14 i32.const 20 i32.sub local.tee $2 @@ -4241,44 +4234,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $0 i32.const 15 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $0 i32.const 13 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $0 i32.const 16 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u local.get $2 i32.const 255 @@ -4286,17 +4279,17 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $1 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.const 0 i32.ne i32.eqz @@ -4319,11 +4312,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $6 local.tee $3 i32.load - local.get $0 - local.tee $5 + local.get $7 i32.extend8_s i32.const -1028477379 i32.mul @@ -4334,25 +4326,25 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $14 + local.tee $12 local.get $3 i32.load offset=4 i32.and @@ -4366,22 +4358,23 @@ local.get $2 if local.get $2 - i32.load offset=4 local.tee $0 + i32.load offset=4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $0 i32.load8_u - local.get $5 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $0 + local.get $2 i32.const -2 i32.and local.set $2 @@ -4389,12 +4382,12 @@ end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $2 - local.get $5 + local.get $0 + local.get $7 i32.store8 offset=1 else local.get $3 @@ -4404,7 +4397,7 @@ i32.eq if local.get $3 - local.tee $4 + local.tee $2 i32.load offset=20 local.get $3 i32.load offset=12 @@ -4414,17 +4407,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $2 i32.load offset=4 else - local.get $4 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $18 + local.set $16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4438,14 +4431,14 @@ i64.const 0 i64.store local.get $0 - local.get $18 + local.get $16 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -4453,46 +4446,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $13 + local.tee $11 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $9 i32.store offset=4 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $0 - local.get $4 + local.tee $17 + local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $12 - local.get $2 - local.set $1 + local.set $10 + local.get $9 + local.set $0 loop $while-continue|00 - local.get $0 - local.get $12 + local.get $10 + local.get $17 i32.ne if - local.get $0 + local.get $17 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $1 local.get $0 + local.get $17 i32.load8_s - local.tee $10 + local.tee $18 i32.store8 - local.get $1 local.get $0 + local.get $17 i32.load8_s offset=1 i32.store8 offset=1 - local.get $1 + local.get $0 local.get $18 - local.get $10 i32.extend8_s i32.const -1028477379 i32.mul @@ -4502,71 +4494,72 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 15 i32.shr_u - local.get $10 i32.xor i32.const -2048144777 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 13 i32.shr_u - local.get $10 i32.xor i32.const -1028477379 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 16 i32.shr_u - local.get $10 i32.xor + local.get $16 i32.and i32.const 2 i32.shl - local.get $11 + local.get $8 i32.add - local.tee $10 + local.tee $18 i32.load i32.store offset=4 - local.get $10 - local.get $1 + local.get $18 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 8 i32.add - local.set $1 + local.set $0 end - local.get $0 + local.get $17 i32.const 8 i32.add - local.set $0 + local.set $17 br $while-continue|00 end end - local.get $4 - local.get $11 + local.get $2 + local.get $8 i32.store - local.get $11 + local.get $8 if local.get $3 - local.get $11 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $3 - local.get $18 + local.get $16 i32.store offset=4 local.get $3 - local.get $2 + local.get $9 i32.store offset=8 - local.get $2 + local.get $9 if local.get $3 - local.get $2 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $3 - local.get $13 + local.get $11 i32.store offset=12 local.get $3 local.get $3 @@ -4580,25 +4573,25 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store local.get $3 local.get $3 i32.load offset=16 - local.tee $0 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $0 + local.get $2 i32.const 3 i32.shl - local.get $1 + local.get $0 i32.add - local.tee $1 - local.get $5 + local.tee $0 + local.get $7 i32.store8 - local.get $1 - local.get $5 + local.get $0 + local.get $7 i32.store8 offset=1 local.get $3 local.get $3 @@ -4606,42 +4599,42 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $0 local.get $3 i32.load local.get $3 i32.load offset=4 - local.get $14 + local.get $12 i32.and i32.const 2 i32.shl i32.add - local.tee $0 + local.tee $2 i32.load i32.store offset=4 + local.get $2 local.get $0 - local.get $1 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $17 - local.get $16 + local.get $15 + local.get $14 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end - local.get $7 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -4653,7 +4646,7 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -4666,19 +4659,19 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|6 - local.get $0 + local.get $1 i32.extend8_s i32.const 50 i32.lt_s if - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4712,38 +4705,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find17 loop $while-continue|018 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find17 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|018 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -4755,10 +4748,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.extend8_s i32.const 20 i32.add @@ -4771,15 +4764,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4813,38 +4806,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find20 loop $while-continue|021 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find20 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|021 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -4853,14 +4846,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|6 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -4873,19 +4866,19 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|8 - local.get $0 + local.get $1 i32.extend8_s i32.const 50 i32.lt_s if - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4919,38 +4912,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find23 loop $while-continue|024 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find23 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|024 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -4959,19 +4952,19 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 - local.get $0 - i32.extend8_s + local.get $5 + local.get $1 + local.get $1 + i32.extend8_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -5005,38 +4998,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find26 loop $while-continue|027 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find26 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|027 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -5048,15 +5041,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -5090,38 +5083,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find29 loop $while-continue|030 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find29 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|030 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -5130,14 +5123,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|8 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -5149,9 +5142,9 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 call $~lib/map/Map#clear - local.get $9 + local.get $5 i32.load offset=20 if i32.const 0 @@ -5256,7 +5249,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -5267,24 +5259,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -5585,16 +5578,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $3 i64.const 0 i64.store - local.get $6 + local.get $3 i64.const 0 i64.store offset=8 - local.get $6 + local.get $3 i32.const 0 i32.store offset=16 - local.get $6 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5610,48 +5603,48 @@ i32.const 24 i32.const 8 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 if - local.get $4 local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $5 i32.const 3 i32.store offset=4 - local.get $4 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store offset=8 - local.get $5 + local.get $4 if - local.get $4 local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $5 i32.const 4 i32.store offset=12 - local.get $4 + local.get $5 i32.const 0 i32.store offset=16 - local.get $4 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $4 + local.get $3 + local.get $5 i32.store loop $for-loop|1 local.get $2 @@ -5660,12 +5653,12 @@ i32.const 100 i32.lt_u if - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.const 255 i32.and i32.const -1028477379 @@ -5676,36 +5669,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -5713,9 +5706,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load8_u - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq @@ -5724,14 +5717,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 if i32.const 0 i32.const 1568 @@ -5740,7 +5733,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 local.get $2 i32.const 255 @@ -5748,12 +5741,12 @@ i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.const 255 i32.and i32.const -1028477379 @@ -5764,36 +5757,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -5801,9 +5794,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load8_u - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq @@ -5812,14 +5805,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -5831,7 +5824,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -5855,7 +5848,7 @@ br $for-loop|1 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -5876,12 +5869,12 @@ i32.const 100 i32.lt_u if - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.const 255 i32.and i32.const -1028477379 @@ -5892,36 +5885,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -5929,9 +5922,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load8_u - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq @@ -5940,14 +5933,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -5959,7 +5952,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -5976,7 +5969,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 local.get $2 i32.const 255 @@ -5984,12 +5977,12 @@ i32.const 20 i32.add call $~lib/map/Map#set - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.const 255 i32.and i32.const -1028477379 @@ -6000,36 +5993,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -6037,9 +6030,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load8_u - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq @@ -6048,14 +6041,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -6067,7 +6060,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -6091,7 +6084,7 @@ br $for-loop|3 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -6104,7 +6097,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6113,17 +6106,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $3 i32.const 0 i32.store - local.get $4 - local.tee $9 + local.get $5 i32.load offset=8 local.set $6 - local.get $4 + local.get $5 i32.load offset=16 - local.set $5 - local.get $7 + local.set $7 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6132,28 +6124,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 i32.const 16 i32.const 9 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $4 i32.store - local.get $8 + local.get $4 i32.const 0 i32.store - local.get $8 + local.get $4 i32.const 0 i32.store offset=4 - local.get $8 + local.get $4 i32.const 0 i32.store offset=8 - local.get $8 + local.get $4 i32.const 0 i32.store offset=12 - local.get $5 + local.get $7 i32.const 1073741820 i32.gt_u if @@ -6165,45 +6157,45 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 8 - local.get $5 + local.get $7 i32.const 8 i32.gt_u select - local.tee $4 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $9 i32.store offset=4 - local.get $8 - local.get $2 + local.get $4 + local.get $9 i32.store - local.get $2 + local.get $9 if - local.get $8 - local.get $2 + local.get $4 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $8 - local.get $2 + local.get $4 + local.get $9 i32.store offset=4 - local.get $8 local.get $4 - i32.store offset=8 local.get $8 - local.get $5 + i32.store offset=8 + local.get $4 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $8 + local.get $3 + local.get $4 i32.store loop $for-loop|0 local.get $1 - local.get $5 + local.get $7 i32.lt_s if local.get $1 @@ -6211,21 +6203,21 @@ i32.mul local.get $6 i32.add - local.tee $2 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $8 + local.get $4 + local.get $0 local.get $3 - local.get $2 i32.load8_u call $~lib/array/Array#__set - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 end local.get $1 i32.const 1 @@ -6234,25 +6226,25 @@ br $for-loop|0 end end - local.get $8 - local.get $3 + local.get $4 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $8 - local.get $3 + local.get $4 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 - local.get $8 + local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 call $~lib/map/Map#values - local.tee $15 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6271,63 +6263,64 @@ i32.const 24 i32.const 10 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store local.get $1 if - local.get $7 + local.get $6 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $7 + local.get $6 i32.const 3 i32.store offset=4 - local.get $7 + local.get $6 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 local.get $1 if - local.get $7 + local.get $6 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $7 + local.get $6 i32.const 4 i32.store offset=12 - local.get $7 + local.get $6 i32.const 0 i32.store offset=16 - local.get $7 + local.get $6 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $17 + local.tee $15 i32.store offset=16 + i32.const 0 + local.set $1 loop $for-loop|4 - local.get $8 + local.get $4 i32.load offset=12 - local.get $0 + local.get $1 i32.gt_s if - local.get $0 - local.tee $6 - local.get $8 + local.get $4 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1728 @@ -6336,22 +6329,22 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $8 + local.get $1 + local.get $4 i32.load offset=4 i32.add i32.load8_u - local.set $0 - local.get $15 - local.get $6 + local.set $7 + local.get $13 + local.get $1 call $~lib/array/Array#__get - local.set $16 - local.get $9 + local.set $14 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $7 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -6386,38 +6379,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -6429,11 +6422,11 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $16 + local.get $14 i32.const 20 i32.sub local.tee $2 @@ -6447,44 +6440,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $0 i32.const 15 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $0 i32.const 13 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $0 i32.const 16 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u local.get $2 i32.const 255 @@ -6492,17 +6485,17 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $1 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.const 0 i32.ne i32.eqz @@ -6525,11 +6518,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $6 local.tee $3 i32.load - local.get $0 - local.tee $5 + local.get $7 i32.const 255 i32.and i32.const -1028477379 @@ -6541,25 +6533,25 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $14 + local.tee $12 local.get $3 i32.load offset=4 i32.and @@ -6573,22 +6565,23 @@ local.get $2 if local.get $2 - i32.load offset=4 local.tee $0 + i32.load offset=4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $0 i32.load8_u - local.get $5 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $0 + local.get $2 i32.const -2 i32.and local.set $2 @@ -6596,12 +6589,12 @@ end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $2 - local.get $5 + local.get $0 + local.get $7 i32.store8 offset=1 else local.get $3 @@ -6611,7 +6604,7 @@ i32.eq if local.get $3 - local.tee $4 + local.tee $2 i32.load offset=20 local.get $3 i32.load offset=12 @@ -6621,17 +6614,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $2 i32.load offset=4 else - local.get $4 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $18 + local.set $16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6645,14 +6638,14 @@ i64.const 0 i64.store local.get $0 - local.get $18 + local.get $16 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -6660,46 +6653,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $13 + local.tee $11 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $9 i32.store offset=4 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $0 - local.get $4 + local.tee $17 + local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $12 - local.get $2 - local.set $1 + local.set $10 + local.get $9 + local.set $0 loop $while-continue|00 - local.get $0 - local.get $12 + local.get $10 + local.get $17 i32.ne if - local.get $0 + local.get $17 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $1 local.get $0 + local.get $17 i32.load8_u - local.tee $10 + local.tee $18 i32.store8 - local.get $1 local.get $0 + local.get $17 i32.load8_u offset=1 i32.store8 offset=1 - local.get $1 + local.get $0 local.get $18 - local.get $10 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6708,71 +6700,72 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 15 i32.shr_u - local.get $10 i32.xor i32.const -2048144777 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 13 i32.shr_u - local.get $10 i32.xor i32.const -1028477379 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 16 i32.shr_u - local.get $10 i32.xor + local.get $16 i32.and i32.const 2 i32.shl - local.get $11 + local.get $8 i32.add - local.tee $10 + local.tee $18 i32.load i32.store offset=4 - local.get $10 - local.get $1 + local.get $18 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 8 i32.add - local.set $1 + local.set $0 end - local.get $0 + local.get $17 i32.const 8 i32.add - local.set $0 + local.set $17 br $while-continue|00 end end - local.get $4 - local.get $11 + local.get $2 + local.get $8 i32.store - local.get $11 + local.get $8 if local.get $3 - local.get $11 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $3 - local.get $18 + local.get $16 i32.store offset=4 local.get $3 - local.get $2 + local.get $9 i32.store offset=8 - local.get $2 + local.get $9 if local.get $3 - local.get $2 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $3 - local.get $13 + local.get $11 i32.store offset=12 local.get $3 local.get $3 @@ -6786,25 +6779,25 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store local.get $3 local.get $3 i32.load offset=16 - local.tee $0 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $0 + local.get $2 i32.const 3 i32.shl - local.get $1 + local.get $0 i32.add - local.tee $1 - local.get $5 + local.tee $0 + local.get $7 i32.store8 - local.get $1 - local.get $5 + local.get $0 + local.get $7 i32.store8 offset=1 local.get $3 local.get $3 @@ -6812,42 +6805,42 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $0 local.get $3 i32.load local.get $3 i32.load offset=4 - local.get $14 + local.get $12 i32.and i32.const 2 i32.shl i32.add - local.tee $0 + local.tee $2 i32.load i32.store offset=4 + local.get $2 local.get $0 - local.get $1 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $17 - local.get $16 + local.get $15 + local.get $14 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end - local.get $7 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -6859,7 +6852,7 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -6872,20 +6865,20 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|6 - local.get $0 + local.get $1 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -6920,38 +6913,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find17 loop $while-continue|018 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find17 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|018 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -6963,10 +6956,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 255 i32.and i32.const 20 @@ -6980,15 +6973,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -7023,38 +7016,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find20 loop $while-continue|021 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find20 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|021 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -7063,14 +7056,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|6 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -7083,20 +7076,20 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|8 - local.get $0 + local.get $1 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -7131,38 +7124,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find23 loop $while-continue|024 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find23 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|024 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -7171,20 +7164,20 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 255 i32.and i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -7219,38 +7212,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find26 loop $while-continue|027 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find26 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|027 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -7262,15 +7255,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -7305,38 +7298,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find29 loop $while-continue|030 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $1 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find29 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|030 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -7345,14 +7338,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|8 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -7364,9 +7357,9 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 call $~lib/map/Map#clear - local.get $9 + local.get $5 i32.load offset=20 if i32.const 0 @@ -7471,7 +7464,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $1 local.get $8 i32.extend16_s i32.const -1028477379 @@ -7483,24 +7475,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -7838,16 +7831,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $3 i64.const 0 i64.store - local.get $6 + local.get $3 i64.const 0 i64.store offset=8 - local.get $6 + local.get $3 i32.const 0 i32.store offset=16 - local.get $6 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7863,48 +7856,48 @@ i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 if - local.get $4 local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $5 i32.const 3 i32.store offset=4 - local.get $4 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store offset=8 - local.get $5 + local.get $4 if - local.get $4 local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $5 i32.const 4 i32.store offset=12 - local.get $4 + local.get $5 i32.const 0 i32.store offset=16 - local.get $4 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $4 + local.get $3 + local.get $5 i32.store loop $for-loop|1 local.get $2 @@ -7912,12 +7905,12 @@ i32.const 100 i32.lt_s if - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -7927,36 +7920,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -7964,9 +7957,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load16_u - local.get $5 + local.get $3 i32.const 65535 i32.and i32.eq @@ -7975,14 +7968,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 if i32.const 0 i32.const 1568 @@ -7991,19 +7984,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 local.get $2 i32.extend16_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -8013,36 +8006,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -8050,9 +8043,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load16_u - local.get $5 + local.get $3 i32.const 65535 i32.and i32.eq @@ -8061,14 +8054,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -8080,7 +8073,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -8103,7 +8096,7 @@ br $for-loop|1 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -8123,12 +8116,12 @@ i32.const 100 i32.lt_s if - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -8138,36 +8131,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -8175,9 +8168,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load16_u - local.get $5 + local.get $3 i32.const 65535 i32.and i32.eq @@ -8186,14 +8179,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -8205,7 +8198,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -8221,19 +8214,19 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 local.get $2 i32.extend16_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -8243,36 +8236,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -8280,9 +8273,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load16_u - local.get $5 + local.get $3 i32.const 65535 i32.and i32.eq @@ -8291,14 +8284,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -8310,7 +8303,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -8333,7 +8326,7 @@ br $for-loop|3 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -8346,7 +8339,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8355,17 +8348,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $3 i32.const 0 i32.store - local.get $4 - local.tee $9 + local.get $5 i32.load offset=8 local.set $6 - local.get $4 + local.get $5 i32.load offset=16 - local.set $5 - local.get $7 + local.set $7 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8374,28 +8366,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $4 i32.store - local.get $8 + local.get $4 i32.const 0 i32.store - local.get $8 + local.get $4 i32.const 0 i32.store offset=4 - local.get $8 + local.get $4 i32.const 0 i32.store offset=8 - local.get $8 + local.get $4 i32.const 0 i32.store offset=12 - local.get $5 + local.get $7 i32.const 536870910 i32.gt_u if @@ -8407,47 +8399,47 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 8 - local.get $5 + local.get $7 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $4 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $9 i32.store offset=4 - local.get $8 - local.get $2 + local.get $4 + local.get $9 i32.store - local.get $2 + local.get $9 if - local.get $8 - local.get $2 + local.get $4 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $8 - local.get $2 + local.get $4 + local.get $9 i32.store offset=4 - local.get $8 local.get $4 - i32.store offset=8 local.get $8 - local.get $5 + i32.store offset=8 + local.get $4 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $8 + local.get $3 + local.get $4 i32.store loop $for-loop|0 local.get $1 - local.get $5 + local.get $7 i32.lt_s if local.get $1 @@ -8455,21 +8447,21 @@ i32.mul local.get $6 i32.add - local.tee $2 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $8 + local.get $4 + local.get $0 local.get $3 - local.get $2 i32.load16_s call $~lib/array/Array#__set - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 end local.get $1 i32.const 1 @@ -8478,25 +8470,25 @@ br $for-loop|0 end end - local.get $8 - local.get $3 + local.get $4 + local.get $0 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $8 - local.get $3 + local.get $4 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 - local.get $8 + local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 call $~lib/map/Map#values - local.tee $15 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8515,63 +8507,64 @@ i32.const 24 i32.const 13 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store local.get $1 if - local.get $7 + local.get $6 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $7 + local.get $6 i32.const 3 i32.store offset=4 - local.get $7 + local.get $6 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 local.get $1 if - local.get $7 + local.get $6 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $7 + local.get $6 i32.const 4 i32.store offset=12 - local.get $7 + local.get $6 i32.const 0 i32.store offset=16 - local.get $7 + local.get $6 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $17 + local.tee $15 i32.store offset=16 + i32.const 0 + local.set $1 loop $for-loop|4 - local.get $8 + local.get $4 i32.load offset=12 - local.get $0 + local.get $1 i32.gt_s if - local.get $0 - local.tee $6 - local.get $8 + local.get $4 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1728 @@ -8580,24 +8573,24 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $4 i32.load offset=4 - local.get $6 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s - local.set $0 - local.get $15 - local.get $6 + local.set $7 + local.get $13 + local.get $1 call $~lib/array/Array#__get - local.set $16 - local.get $9 + local.set $14 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $7 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -8631,38 +8624,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -8674,11 +8667,11 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $16 + local.get $14 i32.const 20 i32.sub local.tee $2 @@ -8691,44 +8684,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $0 i32.const 15 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $0 i32.const 13 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $0 i32.const 16 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u local.get $2 i32.const 65535 @@ -8736,17 +8729,17 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $1 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.const 0 i32.ne i32.eqz @@ -8769,11 +8762,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $6 local.tee $3 i32.load - local.get $0 - local.tee $5 + local.get $7 i32.extend16_s i32.const -1028477379 i32.mul @@ -8784,25 +8776,25 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $14 + local.tee $12 local.get $3 i32.load offset=4 i32.and @@ -8816,22 +8808,23 @@ local.get $2 if local.get $2 - i32.load offset=4 local.tee $0 + i32.load offset=4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $0 i32.load16_u - local.get $5 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $0 + local.get $2 i32.const -2 i32.and local.set $2 @@ -8839,12 +8832,12 @@ end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $2 - local.get $5 + local.get $0 + local.get $7 i32.store16 offset=2 else local.get $3 @@ -8854,7 +8847,7 @@ i32.eq if local.get $3 - local.tee $4 + local.tee $2 i32.load offset=20 local.get $3 i32.load offset=12 @@ -8864,17 +8857,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $2 i32.load offset=4 else - local.get $4 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $18 + local.set $16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8888,14 +8881,14 @@ i64.const 0 i64.store local.get $0 - local.get $18 + local.get $16 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -8903,46 +8896,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $13 + local.tee $11 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $9 i32.store offset=4 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $0 - local.get $4 + local.tee $17 + local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $12 - local.get $2 - local.set $1 + local.set $10 + local.get $9 + local.set $0 loop $while-continue|00 - local.get $0 - local.get $12 + local.get $10 + local.get $17 i32.ne if - local.get $0 + local.get $17 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $1 local.get $0 + local.get $17 i32.load16_s - local.tee $10 + local.tee $18 i32.store16 - local.get $1 local.get $0 + local.get $17 i32.load16_s offset=2 i32.store16 offset=2 - local.get $1 + local.get $0 local.get $18 - local.get $10 i32.extend16_s i32.const -1028477379 i32.mul @@ -8952,71 +8944,72 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 15 i32.shr_u - local.get $10 i32.xor i32.const -2048144777 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 13 i32.shr_u - local.get $10 i32.xor i32.const -1028477379 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 16 i32.shr_u - local.get $10 i32.xor + local.get $16 i32.and i32.const 2 i32.shl - local.get $11 + local.get $8 i32.add - local.tee $10 + local.tee $18 i32.load i32.store offset=4 - local.get $10 - local.get $1 + local.get $18 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 8 i32.add - local.set $1 + local.set $0 end - local.get $0 + local.get $17 i32.const 8 i32.add - local.set $0 + local.set $17 br $while-continue|00 end end - local.get $4 - local.get $11 + local.get $2 + local.get $8 i32.store - local.get $11 + local.get $8 if local.get $3 - local.get $11 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $3 - local.get $18 + local.get $16 i32.store offset=4 local.get $3 - local.get $2 + local.get $9 i32.store offset=8 - local.get $2 + local.get $9 if local.get $3 - local.get $2 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $3 - local.get $13 + local.get $11 i32.store offset=12 local.get $3 local.get $3 @@ -9030,25 +9023,25 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store local.get $3 local.get $3 i32.load offset=16 - local.tee $0 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $0 + local.get $2 i32.const 3 i32.shl - local.get $1 + local.get $0 i32.add - local.tee $1 - local.get $5 + local.tee $0 + local.get $7 i32.store16 - local.get $1 - local.get $5 + local.get $0 + local.get $7 i32.store16 offset=2 local.get $3 local.get $3 @@ -9056,42 +9049,42 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $0 local.get $3 i32.load local.get $3 i32.load offset=4 - local.get $14 + local.get $12 i32.and i32.const 2 i32.shl i32.add - local.tee $0 + local.tee $2 i32.load i32.store offset=4 + local.get $2 local.get $0 - local.get $1 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $17 - local.get $16 + local.get $15 + local.get $14 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end - local.get $7 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -9103,7 +9096,7 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -9116,19 +9109,19 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|6 - local.get $0 + local.get $1 i32.extend16_s i32.const 50 i32.lt_s if - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -9162,38 +9155,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find17 loop $while-continue|018 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find17 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|018 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -9205,10 +9198,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.extend16_s i32.const 20 i32.add @@ -9221,15 +9214,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -9263,38 +9256,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find20 loop $while-continue|021 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find20 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|021 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -9303,14 +9296,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|6 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -9323,19 +9316,19 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|8 - local.get $0 + local.get $1 i32.extend16_s i32.const 50 i32.lt_s if - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -9369,38 +9362,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find23 loop $while-continue|024 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find23 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|024 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -9409,19 +9402,19 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.extend16_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -9455,38 +9448,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find26 loop $while-continue|027 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find26 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|027 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -9498,15 +9491,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -9540,38 +9533,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find29 loop $while-continue|030 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find29 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|030 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -9580,14 +9573,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|8 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -9599,9 +9592,9 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 call $~lib/map/Map#clear - local.get $9 + local.get $5 i32.load offset=20 if i32.const 0 @@ -9706,7 +9699,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -9717,24 +9709,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -10035,16 +10028,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $3 i64.const 0 i64.store - local.get $6 + local.get $3 i64.const 0 i64.store offset=8 - local.get $6 + local.get $3 i32.const 0 i32.store offset=16 - local.get $6 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10060,48 +10053,48 @@ i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 if - local.get $4 local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $5 i32.const 3 i32.store offset=4 - local.get $4 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $4 i32.store offset=8 - local.get $5 + local.get $4 if - local.get $4 local.get $5 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $5 i32.const 4 i32.store offset=12 - local.get $4 + local.get $5 i32.const 0 i32.store offset=16 - local.get $4 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $4 + local.get $3 + local.get $5 i32.store loop $for-loop|1 local.get $2 @@ -10110,12 +10103,12 @@ i32.const 100 i32.lt_u if - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.const 65535 i32.and i32.const -1028477379 @@ -10126,36 +10119,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -10163,9 +10156,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load16_u - local.get $5 + local.get $3 i32.const 65535 i32.and i32.eq @@ -10174,14 +10167,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 if i32.const 0 i32.const 1568 @@ -10190,7 +10183,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 local.get $2 i32.const 65535 @@ -10198,12 +10191,12 @@ i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.const 65535 i32.and i32.const -1028477379 @@ -10214,36 +10207,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -10251,9 +10244,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load16_u - local.get $5 + local.get $3 i32.const 65535 i32.and i32.eq @@ -10262,14 +10255,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -10281,7 +10274,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -10305,7 +10298,7 @@ br $for-loop|1 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -10326,12 +10319,12 @@ i32.const 100 i32.lt_u if - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.const 65535 i32.and i32.const -1028477379 @@ -10342,36 +10335,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -10379,9 +10372,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load16_u - local.get $5 + local.get $3 i32.const 65535 i32.and i32.eq @@ -10390,14 +10383,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -10409,7 +10402,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -10426,7 +10419,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 local.get $2 i32.const 65535 @@ -10434,12 +10427,12 @@ i32.const 20 i32.add call $~lib/map/Map#set - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $2 - local.tee $5 + local.tee $3 i32.const 65535 i32.and i32.const -1028477379 @@ -10450,36 +10443,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $7 + local.get $4 if - local.get $7 + local.get $4 i32.load offset=8 local.tee $6 i32.const 1 @@ -10487,9 +10480,9 @@ if (result i32) i32.const 0 else - local.get $7 + local.get $4 i32.load16_u - local.get $5 + local.get $3 i32.const 65535 i32.and i32.eq @@ -10498,14 +10491,14 @@ local.get $6 i32.const -2 i32.and - local.set $7 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $7 + local.set $4 end - local.get $7 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -10517,7 +10510,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -10541,7 +10534,7 @@ br $for-loop|3 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -10554,7 +10547,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10563,17 +10556,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $3 i32.const 0 i32.store - local.get $4 - local.tee $9 + local.get $5 i32.load offset=8 local.set $6 - local.get $4 + local.get $5 i32.load offset=16 - local.set $5 - local.get $7 + local.set $7 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10582,28 +10574,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 i32.const 16 i32.const 15 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $4 i32.store - local.get $8 + local.get $4 i32.const 0 i32.store - local.get $8 + local.get $4 i32.const 0 i32.store offset=4 - local.get $8 + local.get $4 i32.const 0 i32.store offset=8 - local.get $8 + local.get $4 i32.const 0 i32.store offset=12 - local.get $5 + local.get $7 i32.const 536870910 i32.gt_u if @@ -10615,47 +10607,47 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 8 - local.get $5 + local.get $7 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $4 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $9 i32.store offset=4 - local.get $8 - local.get $2 + local.get $4 + local.get $9 i32.store - local.get $2 + local.get $9 if - local.get $8 - local.get $2 + local.get $4 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $8 - local.get $2 + local.get $4 + local.get $9 i32.store offset=4 - local.get $8 local.get $4 - i32.store offset=8 local.get $8 - local.get $5 + i32.store offset=8 + local.get $4 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $8 + local.get $3 + local.get $4 i32.store loop $for-loop|0 local.get $1 - local.get $5 + local.get $7 i32.lt_s if local.get $1 @@ -10663,21 +10655,21 @@ i32.mul local.get $6 i32.add - local.tee $2 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $8 + local.get $4 + local.get $0 local.get $3 - local.get $2 i32.load16_u call $~lib/array/Array#__set - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 end local.get $1 i32.const 1 @@ -10686,25 +10678,25 @@ br $for-loop|0 end end - local.get $8 - local.get $3 + local.get $4 + local.get $0 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $8 - local.get $3 + local.get $4 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 - local.get $8 + local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 call $~lib/map/Map#values - local.tee $15 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10723,63 +10715,64 @@ i32.const 24 i32.const 16 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store local.get $1 if - local.get $7 + local.get $6 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $7 + local.get $6 i32.const 3 i32.store offset=4 - local.get $7 + local.get $6 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 local.get $1 if - local.get $7 + local.get $6 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $7 + local.get $6 i32.const 4 i32.store offset=12 - local.get $7 + local.get $6 i32.const 0 i32.store offset=16 - local.get $7 + local.get $6 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $17 + local.tee $15 i32.store offset=16 + i32.const 0 + local.set $1 loop $for-loop|4 - local.get $8 + local.get $4 i32.load offset=12 - local.get $0 + local.get $1 i32.gt_s if - local.get $0 - local.tee $6 - local.get $8 + local.get $4 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1248 i32.const 1728 @@ -10788,24 +10781,24 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $4 i32.load offset=4 - local.get $6 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u - local.set $0 - local.get $15 - local.get $6 + local.set $7 + local.get $13 + local.get $1 call $~lib/array/Array#__get - local.set $16 - local.get $9 + local.set $14 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $7 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -10840,38 +10833,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -10883,11 +10876,11 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $16 + local.get $14 i32.const 20 i32.sub local.tee $2 @@ -10901,44 +10894,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $0 i32.const 15 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $0 i32.const 13 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $0 i32.const 16 i32.shr_u - local.get $1 + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u local.get $2 i32.const 65535 @@ -10946,17 +10939,17 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $1 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.const 0 i32.ne i32.eqz @@ -10979,11 +10972,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $6 local.tee $3 i32.load - local.get $0 - local.tee $5 + local.get $7 i32.const 65535 i32.and i32.const -1028477379 @@ -10995,25 +10987,25 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $14 + local.tee $12 local.get $3 i32.load offset=4 i32.and @@ -11027,22 +11019,23 @@ local.get $2 if local.get $2 - i32.load offset=4 local.tee $0 + i32.load offset=4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $0 i32.load16_u - local.get $5 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $0 + local.get $2 i32.const -2 i32.and local.set $2 @@ -11050,12 +11043,12 @@ end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $2 - local.get $5 + local.get $0 + local.get $7 i32.store16 offset=2 else local.get $3 @@ -11065,7 +11058,7 @@ i32.eq if local.get $3 - local.tee $4 + local.tee $2 i32.load offset=20 local.get $3 i32.load offset=12 @@ -11075,17 +11068,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $2 i32.load offset=4 else - local.get $4 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $18 + local.set $16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11099,14 +11092,14 @@ i64.const 0 i64.store local.get $0 - local.get $18 + local.get $16 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -11114,46 +11107,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $13 + local.tee $11 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $9 i32.store offset=4 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $0 - local.get $4 + local.tee $17 + local.get $2 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $12 - local.get $2 - local.set $1 + local.set $10 + local.get $9 + local.set $0 loop $while-continue|00 - local.get $0 - local.get $12 + local.get $10 + local.get $17 i32.ne if - local.get $0 + local.get $17 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $1 local.get $0 + local.get $17 i32.load16_u - local.tee $10 + local.tee $18 i32.store16 - local.get $1 local.get $0 + local.get $17 i32.load16_u offset=2 i32.store16 offset=2 - local.get $1 + local.get $0 local.get $18 - local.get $10 i32.const -1028477379 i32.mul i32.const 374761395 @@ -11162,71 +11154,72 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 15 i32.shr_u - local.get $10 i32.xor i32.const -2048144777 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 13 i32.shr_u - local.get $10 i32.xor i32.const -1028477379 i32.mul - local.tee $10 + local.tee $18 + local.get $18 i32.const 16 i32.shr_u - local.get $10 i32.xor + local.get $16 i32.and i32.const 2 i32.shl - local.get $11 + local.get $8 i32.add - local.tee $10 + local.tee $18 i32.load i32.store offset=4 - local.get $10 - local.get $1 + local.get $18 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 8 i32.add - local.set $1 + local.set $0 end - local.get $0 + local.get $17 i32.const 8 i32.add - local.set $0 + local.set $17 br $while-continue|00 end end - local.get $4 - local.get $11 + local.get $2 + local.get $8 i32.store - local.get $11 + local.get $8 if local.get $3 - local.get $11 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $3 - local.get $18 + local.get $16 i32.store offset=4 local.get $3 - local.get $2 + local.get $9 i32.store offset=8 - local.get $2 + local.get $9 if local.get $3 - local.get $2 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $3 - local.get $13 + local.get $11 i32.store offset=12 local.get $3 local.get $3 @@ -11240,25 +11233,25 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store local.get $3 local.get $3 i32.load offset=16 - local.tee $0 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $0 + local.get $2 i32.const 3 i32.shl - local.get $1 + local.get $0 i32.add - local.tee $1 - local.get $5 + local.tee $0 + local.get $7 i32.store16 - local.get $1 - local.get $5 + local.get $0 + local.get $7 i32.store16 offset=2 local.get $3 local.get $3 @@ -11266,42 +11259,42 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $0 local.get $3 i32.load local.get $3 i32.load offset=4 - local.get $14 + local.get $12 i32.and i32.const 2 i32.shl i32.add - local.tee $0 + local.tee $2 i32.load i32.store offset=4 + local.get $2 local.get $0 - local.get $1 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $17 - local.get $16 + local.get $15 + local.get $14 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|4 end end - local.get $7 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -11313,7 +11306,7 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -11326,20 +11319,20 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|6 - local.get $0 + local.get $1 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -11374,38 +11367,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find17 loop $while-continue|018 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find17 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|018 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -11417,10 +11410,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 65535 i32.and i32.const 20 @@ -11434,16 +11427,16 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 65535 + local.get $1 + local.tee $0 + i32.const 65535 i32.and i32.const -1028477379 i32.mul @@ -11477,38 +11470,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find20 loop $while-continue|021 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find20 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|021 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -11517,14 +11510,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|6 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -11537,20 +11530,20 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|8 - local.get $0 + local.get $1 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -11585,38 +11578,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find23 loop $while-continue|024 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find23 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|024 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -11625,20 +11618,20 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 - local.get $0 + local.get $5 + local.get $1 + local.get $1 i32.const 65535 i32.and i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -11673,38 +11666,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find26 loop $while-continue|027 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find26 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|027 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.const 0 i32.ne i32.eqz @@ -11716,15 +11709,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $0 + local.get $5 + local.get $1 call $~lib/map/Map#delete - local.get $9 + local.get $5 i32.load - local.get $9 + local.get $5 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -11759,38 +11752,38 @@ i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find29 loop $while-continue|030 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $1 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find29 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|030 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -11799,14 +11792,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|8 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -11818,9 +11811,9 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $5 call $~lib/map/Map#clear - local.get $9 + local.get $5 i32.load offset=20 if i32.const 0 @@ -12071,29 +12064,29 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 call $~lib/map/Map#constructor - local.tee $4 + local.tee $2 i32.store loop $for-loop|0 - local.get $3 + local.get $0 i32.const 100 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12102,22 +12095,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12126,36 +12119,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -12164,17 +12157,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $3 + local.get $2 + local.get $0 + local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12183,22 +12176,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12207,36 +12200,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -12246,10 +12239,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $2 + local.get $0 call $~lib/map/Map#get - local.get $3 + local.get $0 i32.const 10 i32.add i32.ne @@ -12261,14 +12254,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|0 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -12281,17 +12274,17 @@ unreachable end i32.const 0 - local.set $3 + local.set $0 loop $for-loop|1 - local.get $3 + local.get $0 i32.const 100 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12300,22 +12293,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12324,36 +12317,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -12363,10 +12356,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $2 + local.get $0 call $~lib/map/Map#get - local.get $3 + local.get $0 i32.const 10 i32.add i32.ne @@ -12378,17 +12371,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $3 + local.get $2 + local.get $0 + local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12397,22 +12390,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12421,36 +12414,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -12460,10 +12453,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $2 + local.get $0 call $~lib/map/Map#get - local.get $3 + local.get $0 i32.const 20 i32.add i32.ne @@ -12475,14 +12468,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|1 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -12495,7 +12488,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -12504,38 +12497,40 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $4 + local.get $2 i32.load offset=8 - local.set $6 - local.get $3 - local.get $4 + local.set $5 + local.get $0 + local.get $2 i32.load offset=16 - local.tee $7 + local.tee $6 call $~lib/array/Array#constructor - local.tee $3 + local.tee $4 i32.store + i32.const 0 + local.set $0 loop $for-loop|02 - local.get $5 - local.get $7 + local.get $3 + local.get $6 i32.lt_s if - local.get $5 + local.get $3 i32.const 12 i32.mul - local.get $6 + local.get $5 i32.add - local.tee $8 + local.tee $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $3 + local.get $4 local.get $0 - local.get $8 + local.get $7 i32.load call $~lib/array/Array#__set local.get $0 @@ -12543,60 +12538,62 @@ i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|02 end end - local.get $3 + local.get $4 local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $3 + local.get $4 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 call $~lib/map/Map#values - local.tee $5 + local.tee $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $6 + local.tee $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $7 + local.tee $8 i32.store offset=16 + i32.const 0 + local.set $0 loop $for-loop|2 - local.get $3 + local.get $4 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if - local.get $3 - local.get $1 + local.get $4 + local.get $0 call $~lib/array/Array#__get - local.set $8 - local.get $5 - local.get $1 + local.set $3 + local.get $6 + local.get $0 call $~lib/array/Array#__get local.set $9 - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $8 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12605,22 +12602,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12629,36 +12626,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $8 - local.get $2 + local.get $3 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $0 + local.get $5 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|011 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -12668,9 +12665,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $9 i32.const 20 @@ -12684,22 +12681,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -12708,36 +12705,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $10 - local.get $2 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $0 + local.get $5 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|014 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -12747,25 +12744,25 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $8 - local.get $8 - call $~lib/map/Map#set local.get $7 + local.get $3 + local.get $3 + call $~lib/map/Map#set + local.get $8 local.get $9 i32.const 20 i32.sub - local.tee $0 - local.get $0 - call $~lib/map/Map#set + local.tee $1 local.get $1 + call $~lib/map/Map#set + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|2 end end - local.get $6 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -12777,7 +12774,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -12790,18 +12787,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|3 - local.get $1 + local.get $0 i32.const 50 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12841,7 +12837,7 @@ if local.get $1 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -12853,7 +12849,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find16 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -12873,7 +12869,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/map/Map#get local.get $0 @@ -12888,12 +12884,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/map/Map#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -12935,7 +12931,7 @@ if local.get $1 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -12947,7 +12943,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -12969,11 +12965,11 @@ local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -12986,18 +12982,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|4 - local.get $1 + local.get $0 i32.const 50 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13037,7 +13032,7 @@ if local.get $1 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -13049,7 +13044,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -13068,15 +13063,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -13118,7 +13113,7 @@ if local.get $1 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -13130,7 +13125,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -13150,12 +13145,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/map/Map#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -13197,7 +13192,7 @@ if local.get $1 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -13209,7 +13204,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -13231,11 +13226,11 @@ local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|4 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -13247,9 +13242,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/map/Map#clear - local.get $4 + local.get $2 i32.load offset=20 if i32.const 0 @@ -13353,7 +13348,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -13364,24 +13358,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -13671,16 +13666,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13696,59 +13691,59 @@ i32.const 24 i32.const 17 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $12 i32.store - local.get $3 + local.get $12 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 if + local.get $12 local.get $3 - local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 3 i32.store offset=4 - local.get $3 + local.get $12 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $3 i32.store offset=8 - local.get $5 + local.get $3 if + local.get $12 local.get $3 - local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $12 i32.const 4 i32.store offset=12 - local.get $3 + local.get $12 i32.const 0 i32.store offset=16 - local.get $3 + local.get $12 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $3 + local.get $2 + local.get $12 i32.store loop $for-loop|0 - local.get $4 + local.get $0 i32.const 100 i32.lt_u if - local.get $3 + local.get $12 i32.load - local.get $3 + local.get $12 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13757,22 +13752,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -13781,36 +13776,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $0 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -13819,17 +13814,17 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 - local.get $4 + local.get $12 + local.get $0 + local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load - local.get $3 + local.get $12 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13838,22 +13833,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -13862,36 +13857,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $0 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|02 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -13901,10 +13896,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 + local.get $12 + local.get $0 call $~lib/map/Map#get - local.get $4 + local.get $0 i32.const 10 i32.add i32.ne @@ -13916,14 +13911,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|0 end end - local.get $3 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -13936,17 +13931,17 @@ unreachable end i32.const 0 - local.set $4 + local.set $0 loop $for-loop|1 - local.get $4 + local.get $0 i32.const 100 i32.lt_u if - local.get $3 + local.get $12 i32.load - local.get $3 + local.get $12 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13955,22 +13950,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -13979,36 +13974,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $0 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|05 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -14018,10 +14013,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 + local.get $12 + local.get $0 call $~lib/map/Map#get - local.get $4 + local.get $0 i32.const 10 i32.add i32.ne @@ -14033,17 +14028,17 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 - local.get $4 + local.get $12 + local.get $0 + local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $3 + local.get $12 i32.load - local.get $3 + local.get $12 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14052,22 +14047,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -14076,36 +14071,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $0 + local.get $2 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|08 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -14115,10 +14110,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 + local.get $12 + local.get $0 call $~lib/map/Map#get - local.get $4 + local.get $0 i32.const 20 i32.add i32.ne @@ -14130,14 +14125,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|1 end end - local.get $3 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -14150,7 +14145,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14159,17 +14154,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $0 i32.const 0 i32.store - local.get $3 - local.tee $1 + local.get $12 i32.load offset=8 - local.set $8 - local.get $3 + local.set $4 + local.get $12 i32.load offset=16 - local.set $3 - local.get $7 + local.set $5 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14178,28 +14172,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $2 i32.store - local.get $5 + local.get $2 i32.const 0 i32.store - local.get $5 + local.get $2 i32.const 0 i32.store offset=4 - local.get $5 + local.get $2 i32.const 0 i32.store offset=8 - local.get $5 + local.get $2 i32.const 0 i32.store offset=12 - local.get $3 + local.get $5 i32.const 268435455 i32.gt_u if @@ -14211,96 +14205,98 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 8 - local.get $3 + local.get $5 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $9 + local.tee $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $7 i32.store offset=4 - local.get $5 - local.get $10 + local.get $2 + local.get $7 i32.store - local.get $10 + local.get $7 if - local.get $5 - local.get $10 + local.get $2 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 - local.get $10 + local.get $2 + local.get $7 i32.store offset=4 - local.get $5 - local.get $9 + local.get $2 + local.get $6 i32.store offset=8 + local.get $2 local.get $5 - local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $5 + local.get $0 + local.get $2 i32.store + i32.const 0 + local.set $0 loop $for-loop|02 - local.get $3 - local.get $6 - i32.gt_s + local.get $0 + local.get $5 + i32.lt_s if - local.get $6 + local.get $0 i32.const 12 i32.mul - local.get $8 + local.get $4 i32.add - local.tee $7 + local.tee $6 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $5 - local.get $0 - local.get $7 + local.get $2 + local.get $1 + local.get $6 i32.load call $~lib/array/Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 end - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $0 br $for-loop|02 end end - local.get $5 - local.get $0 + local.get $2 + local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $5 - local.get $0 + local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 + local.get $3 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $12 call $~lib/map/Map#values - local.tee $9 + local.tee $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14312,68 +14308,70 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $1 i32.const 24 i32.const 19 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $13 i32.store - local.get $12 + local.get $13 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 if - local.get $12 - local.get $3 + local.get $13 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 3 i32.store offset=4 - local.get $12 + local.get $13 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store offset=8 - local.get $3 + local.get $1 if - local.get $12 - local.get $3 + local.get $13 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 4 i32.store offset=12 - local.get $12 + local.get $13 i32.const 0 i32.store offset=16 - local.get $12 + local.get $13 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $14 i32.store offset=16 + i32.const 0 + local.set $0 loop $for-loop|2 - local.get $5 - i32.load offset=12 local.get $2 + i32.load offset=12 + local.get $0 i32.gt_s if - local.get $2 + local.get $0 local.tee $3 - local.get $5 + local.get $2 i32.load offset=12 i32.ge_u if @@ -14384,23 +14382,23 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $2 i32.load offset=4 local.get $3 i32.const 2 i32.shl i32.add i32.load - local.set $13 - local.get $9 + local.set $15 + local.get $6 local.get $3 call $~lib/array/Array#__get - local.set $10 - local.get $1 + local.set $5 + local.get $12 i32.load - local.get $1 + local.get $12 i32.load offset=4 - local.get $13 + local.get $15 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14440,19 +14438,19 @@ if local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $13 + local.get $15 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $2 + local.get $1 i32.const -2 i32.and local.set $0 @@ -14472,14 +14470,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $12 i32.load - local.get $1 + local.get $12 i32.load offset=4 - local.get $10 + local.get $5 i32.const 20 i32.sub - local.tee $2 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14525,7 +14523,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 i32.load i32.eq @@ -14562,9 +14560,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $12 - i32.load local.get $13 + i32.load + local.get $15 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14574,38 +14572,39 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $8 - local.get $12 + local.tee $7 + local.get $13 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find15 loop $while-continue|016 - local.get $2 + local.get $0 if - local.get $2 + local.get $0 + local.tee $1 i32.load offset=8 local.tee $0 i32.const 1 @@ -14613,8 +14612,8 @@ if (result i32) i32.const 0 else - local.get $13 - local.get $2 + local.get $15 + local.get $1 i32.load i32.eq end @@ -14622,28 +14621,28 @@ local.get $0 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|016 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if - local.get $2 - local.get $13 + local.get $1 + local.get $15 i32.store offset=4 else - local.get $12 + local.get $13 i32.load offset=16 - local.get $12 + local.get $13 i32.load offset=12 i32.eq if - local.get $12 + local.get $13 i32.load offset=20 - local.get $12 + local.get $13 i32.load offset=12 i32.const 3 i32.mul @@ -14651,17 +14650,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $12 + local.get $13 i32.load offset=4 else - local.get $12 + local.get $13 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $14 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14675,14 +14674,14 @@ i64.const 0 i64.store local.get $0 - local.get $14 + local.get $10 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $11 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -14690,45 +14689,44 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $8 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $1 i32.store offset=4 - local.get $12 + local.get $13 i32.load offset=8 - local.tee $2 - local.get $12 + local.tee $4 + local.get $13 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $6 - local.get $4 + local.set $9 + local.get $1 local.set $0 loop $while-continue|00 - local.get $2 - local.get $6 + local.get $4 + local.get $9 i32.ne if - local.get $2 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $2 + local.get $4 i32.load local.tee $16 i32.store local.get $0 - local.get $2 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $0 - local.get $14 local.get $16 i32.const -1028477379 i32.mul @@ -14739,28 +14737,29 @@ i32.const 668265263 i32.mul local.tee $16 - local.get $16 i32.const 15 i32.shr_u + local.get $16 i32.xor i32.const -2048144777 i32.mul local.tee $16 - local.get $16 i32.const 13 i32.shr_u + local.get $16 i32.xor i32.const -1028477379 i32.mul local.tee $16 - local.get $16 i32.const 16 i32.shr_u + local.get $16 i32.xor + local.get $10 i32.and i32.const 2 i32.shl - local.get $15 + local.get $11 i32.add local.tee $16 i32.load @@ -14773,39 +14772,39 @@ i32.add local.set $0 end - local.get $2 + local.get $4 i32.const 12 i32.add - local.set $2 + local.set $4 br $while-continue|00 end end - local.get $12 - local.get $15 + local.get $13 + local.get $11 i32.store - local.get $15 + local.get $11 if - local.get $12 - local.get $15 + local.get $13 + local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $14 + local.get $13 + local.get $10 i32.store offset=4 - local.get $12 - local.get $4 + local.get $13 + local.get $1 i32.store offset=8 - local.get $4 + local.get $1 if - local.get $12 - local.get $4 + local.get $13 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $7 + local.get $13 + local.get $8 i32.store offset=12 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -14814,48 +14813,48 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.load offset=8 local.tee $0 i32.store - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load offset=16 - local.tee $2 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $1 i32.const 12 i32.mul local.get $0 i32.add local.tee $0 - local.get $13 + local.get $15 i32.store local.get $0 - local.get $13 + local.get $15 i32.store offset=4 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $12 + local.get $13 i32.load - local.get $12 + local.get $13 i32.load offset=4 - local.get $8 + local.get $7 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=8 - local.get $2 + local.get $1 local.get $0 i32.store end @@ -14863,8 +14862,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 - local.get $10 + local.get $14 + local.get $5 i32.const 20 i32.sub local.tee $0 @@ -14873,11 +14872,11 @@ local.get $3 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|2 end end - local.get $12 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -14889,7 +14888,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $14 i32.load offset=20 i32.const 100 i32.ne @@ -14902,17 +14901,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $0 loop $for-loop|3 - local.get $2 + local.get $0 i32.const 50 i32.lt_u if - local.get $1 + local.get $12 i32.load - local.get $1 + local.get $12 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14921,22 +14920,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -14945,36 +14944,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $2 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $4 + local.get $2 if - local.get $4 + local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $2 - local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $0 + local.get $1 i32.const -2 i32.and - local.set $4 + local.set $2 br $while-continue|019 end end i32.const 0 - local.set $4 + local.set $2 end - local.get $4 + local.get $2 i32.eqz if i32.const 0 @@ -14984,10 +14983,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $2 + local.get $12 + local.get $0 call $~lib/map/Map#get - local.get $2 + local.get $0 i32.const 20 i32.add i32.ne @@ -14999,14 +14998,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $2 + local.get $12 + local.get $0 call $~lib/map/Map#delete - local.get $1 + local.get $12 i32.load - local.get $1 + local.get $12 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15015,22 +15014,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -15039,36 +15038,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $2 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $4 + local.get $2 if - local.get $4 + local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $2 - local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $0 + local.get $1 i32.const -2 i32.and - local.set $4 + local.set $2 br $while-continue|022 end end i32.const 0 - local.set $4 + local.set $2 end - local.get $4 + local.get $2 if i32.const 0 i32.const 1568 @@ -15077,14 +15076,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|3 end end - local.get $1 + local.get $12 i32.load offset=20 i32.const 50 i32.ne @@ -15097,17 +15096,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $0 loop $for-loop|4 - local.get $2 + local.get $0 i32.const 50 i32.lt_u if - local.get $1 + local.get $12 i32.load - local.get $1 + local.get $12 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15116,22 +15115,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -15140,36 +15139,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $2 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $4 + local.get $2 if - local.get $4 + local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $2 - local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $0 + local.get $1 i32.const -2 i32.and - local.set $4 + local.set $2 br $while-continue|025 end end i32.const 0 - local.set $4 + local.set $2 end - local.get $4 + local.get $2 if i32.const 0 i32.const 1568 @@ -15178,17 +15177,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $2 - local.get $2 + local.get $12 + local.get $0 + local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $1 + local.get $12 i32.load - local.get $1 + local.get $12 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15197,22 +15196,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -15221,36 +15220,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $2 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $4 + local.get $2 if - local.get $4 + local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $2 - local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $0 + local.get $1 i32.const -2 i32.and - local.set $4 + local.set $2 br $while-continue|028 end end i32.const 0 - local.set $4 + local.set $2 end - local.get $4 + local.get $2 i32.eqz if i32.const 0 @@ -15260,14 +15259,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $2 + local.get $12 + local.get $0 call $~lib/map/Map#delete - local.get $1 + local.get $12 i32.load - local.get $1 + local.get $12 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15276,22 +15275,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -15300,36 +15299,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $2 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $4 + local.get $2 if - local.get $4 + local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $2 - local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 + local.get $1 i32.const -2 i32.and - local.set $4 + local.set $2 br $while-continue|031 end end i32.const 0 - local.set $4 + local.set $2 end - local.get $4 + local.get $2 if i32.const 0 i32.const 1568 @@ -15338,14 +15337,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|4 end end - local.get $1 + local.get $12 i32.load offset=20 i32.const 50 i32.ne @@ -15357,9 +15356,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $12 call $~lib/map/Map#clear - local.get $1 + local.get $12 i32.load offset=20 if i32.const 0 @@ -15976,16 +15975,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16041,7 +16040,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $10 i32.store loop $for-loop|0 @@ -16204,7 +16203,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16213,16 +16212,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 0 i32.store local.get $10 i32.load offset=8 - local.set $7 + local.set $5 local.get $10 i32.load offset=16 - local.set $8 - local.get $6 + local.set $6 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -16231,28 +16230,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i64.const 0 i64.store - local.get $1 + local.get $7 i32.const 16 i32.const 21 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $11 i32.store - local.get $1 + local.get $11 i32.const 0 i32.store - local.get $1 + local.get $11 i32.const 0 i32.store offset=4 - local.get $1 + local.get $11 i32.const 0 i32.store offset=8 - local.get $1 + local.get $11 i32.const 0 i32.store offset=12 - local.get $8 + local.get $6 i32.const 134217727 i32.gt_u if @@ -16264,63 +16263,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.const 8 - local.get $8 + local.get $6 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $8 i32.store offset=4 - local.get $1 local.get $11 + local.get $8 i32.store - local.get $11 + local.get $8 if - local.get $1 local.get $11 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 local.get $11 + local.get $8 i32.store offset=4 - local.get $1 - local.get $9 + local.get $11 + local.get $7 i32.store offset=8 - local.get $1 - local.get $8 + local.get $11 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $1 + local.get $4 + local.get $11 i32.store loop $for-loop|02 - local.get $2 - local.get $8 + local.get $1 + local.get $6 i32.lt_s if - local.get $2 + local.get $1 i32.const 4 i32.shl - local.get $7 + local.get $5 i32.add - local.tee $6 + local.tee $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $11 local.get $0 - local.get $6 + local.get $4 i64.load call $~lib/array/Array#__set local.get $0 @@ -16328,32 +16327,32 @@ i32.add local.set $0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|02 end end - local.get $1 + local.get $11 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $11 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $2 + local.get $11 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $10 call $~lib/map/Map#values - local.tee $11 + local.tee $12 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16365,69 +16364,72 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 24 i32.const 22 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $13 i32.store - local.get $12 + local.get $13 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if - local.get $12 - local.get $2 + local.get $13 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 3 i32.store offset=4 - local.get $12 + local.get $13 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $2 + local.get $1 if - local.get $12 - local.get $2 + local.get $13 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 4 i32.store offset=12 - local.get $12 + local.get $13 i32.const 0 i32.store offset=16 - local.get $12 + local.get $13 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $6 + local.tee $14 i32.store offset=16 + i32.const 0 + local.set $0 loop $for-loop|2 - local.get $1 + local.get $11 i32.load offset=12 - local.get $5 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 + local.tee $1 + local.get $11 i32.load offset=12 - local.get $5 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -16436,18 +16438,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $11 i32.load offset=4 - local.get $5 + local.get $1 i32.const 3 i32.shl i32.add i64.load local.set $3 - local.get $11 - local.get $5 + local.get $12 + local.get $1 call $~lib/array/Array#__get - local.set $7 + local.set $15 local.get $10 local.get $3 call $~lib/map/Map#has @@ -16461,7 +16463,7 @@ unreachable end local.get $10 - local.get $7 + local.get $15 i32.const 20 i32.sub i64.extend_i32_s @@ -16486,7 +16488,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $12 + local.get $13 i32.load local.get $3 i32.wrap_i64 @@ -16528,8 +16530,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $13 - local.get $12 + local.tee $5 + local.get $13 i32.load offset=4 i32.and i32.const 2 @@ -16571,15 +16573,15 @@ local.get $3 i64.store offset=8 else - local.get $12 + local.get $13 i32.load offset=16 - local.get $12 + local.get $13 i32.load offset=12 i32.eq if - local.get $12 + local.get $13 i32.load offset=20 - local.get $12 + local.get $13 i32.load offset=12 i32.const 3 i32.mul @@ -16587,10 +16589,10 @@ i32.div_s i32.lt_s if (result i32) - local.get $12 + local.get $13 i32.load offset=4 else - local.get $12 + local.get $13 i32.load offset=4 i32.const 1 i32.shl @@ -16626,26 +16628,26 @@ i32.shl i32.const 3 i32.div_s - local.tee $14 + local.tee $6 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $2 i32.store offset=4 - local.get $12 + local.get $13 i32.load offset=8 local.tee $4 - local.get $12 + local.get $13 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $15 + local.set $7 local.get $2 local.set $0 loop $while-continue|00 local.get $4 - local.get $15 + local.get $7 i32.ne if local.get $4 @@ -16728,32 +16730,32 @@ br $while-continue|00 end end - local.get $12 + local.get $13 local.get $9 i32.store local.get $9 if - local.get $12 + local.get $13 local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 local.get $8 i32.store offset=4 - local.get $12 + local.get $13 local.get $2 i32.store offset=8 local.get $2 if - local.get $12 + local.get $13 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $14 + local.get $13 + local.get $6 i32.store offset=12 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -16762,12 +16764,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.load offset=8 local.tee $0 i32.store - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load offset=16 local.tee $2 i32.const 1 @@ -16784,18 +16786,18 @@ local.get $0 local.get $3 i64.store offset=8 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $12 + local.get $13 i32.load - local.get $12 - i32.load offset=4 local.get $13 + i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -16811,21 +16813,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $7 + local.get $14 + local.get $15 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $0 br $for-loop|2 end end - local.get $12 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -16837,7 +16839,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $14 i32.load offset=20 i32.const 100 i32.ne @@ -17530,16 +17532,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17595,7 +17597,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $10 i32.store loop $for-loop|0 @@ -17758,7 +17760,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17767,16 +17769,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 0 i32.store local.get $10 i32.load offset=8 - local.set $7 + local.set $5 local.get $10 i32.load offset=16 - local.set $8 - local.get $6 + local.set $6 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17785,28 +17787,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $7 i64.const 0 i64.store - local.get $1 + local.get $7 i32.const 16 i32.const 24 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $11 i32.store - local.get $1 + local.get $11 i32.const 0 i32.store - local.get $1 + local.get $11 i32.const 0 i32.store offset=4 - local.get $1 + local.get $11 i32.const 0 i32.store offset=8 - local.get $1 + local.get $11 i32.const 0 i32.store offset=12 - local.get $8 + local.get $6 i32.const 134217727 i32.gt_u if @@ -17818,63 +17820,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.const 8 - local.get $8 + local.get $6 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $8 i32.store offset=4 - local.get $1 local.get $11 + local.get $8 i32.store - local.get $11 + local.get $8 if - local.get $1 local.get $11 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 local.get $11 + local.get $8 i32.store offset=4 - local.get $1 - local.get $9 + local.get $11 + local.get $7 i32.store offset=8 - local.get $1 - local.get $8 + local.get $11 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $1 + local.get $4 + local.get $11 i32.store loop $for-loop|02 - local.get $2 - local.get $8 + local.get $1 + local.get $6 i32.lt_s if - local.get $2 + local.get $1 i32.const 4 i32.shl - local.get $7 + local.get $5 i32.add - local.tee $6 + local.tee $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $11 local.get $0 - local.get $6 + local.get $4 i64.load call $~lib/array/Array#__set local.get $0 @@ -17882,32 +17884,32 @@ i32.add local.set $0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|02 end end - local.get $1 + local.get $11 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $11 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 + local.get $2 + local.get $11 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $10 call $~lib/map/Map#values - local.tee $11 + local.tee $12 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17919,69 +17921,72 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 24 i32.const 25 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $13 i32.store - local.get $12 + local.get $13 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if - local.get $12 - local.get $2 + local.get $13 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 3 i32.store offset=4 - local.get $12 + local.get $13 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $2 + local.get $1 if - local.get $12 - local.get $2 + local.get $13 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 i32.const 4 i32.store offset=12 - local.get $12 + local.get $13 i32.const 0 i32.store offset=16 - local.get $12 + local.get $13 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $6 + local.tee $14 i32.store offset=16 + i32.const 0 + local.set $0 loop $for-loop|2 - local.get $1 + local.get $11 i32.load offset=12 - local.get $5 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 + local.tee $1 + local.get $11 i32.load offset=12 - local.get $5 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -17990,18 +17995,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $11 i32.load offset=4 - local.get $5 + local.get $1 i32.const 3 i32.shl i32.add i64.load local.set $3 - local.get $11 - local.get $5 + local.get $12 + local.get $1 call $~lib/array/Array#__get - local.set $7 + local.set $15 local.get $10 local.get $3 call $~lib/map/Map#has @@ -18015,7 +18020,7 @@ unreachable end local.get $10 - local.get $7 + local.get $15 i32.const 20 i32.sub i64.extend_i32_s @@ -18040,7 +18045,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $12 + local.get $13 i32.load local.get $3 i32.wrap_i64 @@ -18082,8 +18087,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $13 - local.get $12 + local.tee $5 + local.get $13 i32.load offset=4 i32.and i32.const 2 @@ -18125,15 +18130,15 @@ local.get $3 i64.store offset=8 else - local.get $12 + local.get $13 i32.load offset=16 - local.get $12 + local.get $13 i32.load offset=12 i32.eq if - local.get $12 + local.get $13 i32.load offset=20 - local.get $12 + local.get $13 i32.load offset=12 i32.const 3 i32.mul @@ -18141,10 +18146,10 @@ i32.div_s i32.lt_s if (result i32) - local.get $12 + local.get $13 i32.load offset=4 else - local.get $12 + local.get $13 i32.load offset=4 i32.const 1 i32.shl @@ -18180,26 +18185,26 @@ i32.shl i32.const 3 i32.div_s - local.tee $14 + local.tee $6 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $2 i32.store offset=4 - local.get $12 + local.get $13 i32.load offset=8 local.tee $4 - local.get $12 + local.get $13 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $15 + local.set $7 local.get $2 local.set $0 loop $while-continue|00 local.get $4 - local.get $15 + local.get $7 i32.ne if local.get $4 @@ -18282,32 +18287,32 @@ br $while-continue|00 end end - local.get $12 + local.get $13 local.get $9 i32.store local.get $9 if - local.get $12 + local.get $13 local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 + local.get $13 local.get $8 i32.store offset=4 - local.get $12 + local.get $13 local.get $2 i32.store offset=8 local.get $2 if - local.get $12 + local.get $13 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $14 + local.get $13 + local.get $6 i32.store offset=12 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -18316,12 +18321,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.load offset=8 local.tee $0 i32.store - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load offset=16 local.tee $2 i32.const 1 @@ -18338,18 +18343,18 @@ local.get $0 local.get $3 i64.store offset=8 - local.get $12 - local.get $12 + local.get $13 + local.get $13 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $12 + local.get $13 i32.load - local.get $12 - i32.load offset=4 local.get $13 + i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -18365,21 +18370,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $7 + local.get $14 + local.get $15 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $0 br $for-loop|2 end end - local.get $12 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -18391,7 +18396,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $14 i32.load offset=20 i32.const 100 i32.ne @@ -18648,7 +18653,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $1 local.get $8 i32.reinterpret_f32 i32.const -1028477379 @@ -18660,24 +18664,25 @@ i32.const 668265263 i32.mul local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $9 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -18943,8 +18948,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) - (local $5 i32) + (local $4 i32) + (local $5 f32) (local $6 i32) (local $7 i32) (local $8 i32) @@ -18967,16 +18972,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -18985,66 +18990,66 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 24 i32.const 26 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 if + local.get $4 local.get $3 - local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 i32.const 3 i32.store offset=4 - local.get $3 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $3 i32.store offset=8 - local.get $2 + local.get $3 if + local.get $4 local.get $3 - local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 i32.const 4 i32.store offset=12 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.store loop $for-loop|0 - local.get $4 + local.get $5 f32.const 100 f32.lt if - local.get $3 + local.get $4 i32.load - local.get $3 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19054,22 +19059,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -19078,36 +19083,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $5 + local.get $2 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -19116,18 +19121,18 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 local.get $4 + local.get $5 + local.get $5 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $4 i32.load - local.get $3 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19137,22 +19142,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -19161,36 +19166,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $5 + local.get $2 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|02 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -19200,10 +19205,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $4 + local.get $5 call $~lib/map/Map#get - local.get $4 + local.get $5 i32.trunc_f32_s i32.const 10 i32.add @@ -19216,14 +19221,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 f32.const 1 f32.add - local.set $4 + local.set $5 br $for-loop|0 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -19236,17 +19241,17 @@ unreachable end f32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 f32.const 100 f32.lt if - local.get $3 + local.get $4 i32.load - local.get $3 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19256,22 +19261,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -19280,36 +19285,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $5 + local.get $2 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|05 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -19319,10 +19324,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $4 + local.get $5 call $~lib/map/Map#get - local.get $4 + local.get $5 i32.trunc_f32_s i32.const 10 i32.add @@ -19335,18 +19340,18 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 local.get $4 + local.get $5 + local.get $5 i32.trunc_f32_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $3 + local.get $4 i32.load - local.get $3 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19356,22 +19361,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u i32.xor @@ -19380,36 +19385,36 @@ i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $1 + local.get $5 + local.get $2 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|08 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -19419,10 +19424,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $4 + local.get $5 call $~lib/map/Map#get - local.get $4 + local.get $5 i32.trunc_f32_s i32.const 20 i32.add @@ -19435,14 +19440,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 f32.const 1 f32.add - local.set $4 + local.set $5 br $for-loop|1 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -19464,16 +19469,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $3 + local.get $4 i32.load offset=8 local.set $7 - local.get $3 + local.get $4 i32.load offset=16 local.set $8 - local.get $1 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -19482,25 +19487,25 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i32.const 16 i32.const 27 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 0 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.store offset=8 - local.get $2 + local.get $3 i32.const 0 i32.store offset=12 local.get $8 @@ -19523,66 +19528,66 @@ select i32.const 2 i32.shl - local.tee $10 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store offset=4 - local.get $2 - local.get $11 + local.get $3 + local.get $10 i32.store - local.get $11 + local.get $10 if - local.get $2 - local.get $11 + local.get $3 + local.get $10 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 - local.get $11 - i32.store offset=4 - local.get $2 + local.get $3 local.get $10 + i32.store offset=4 + local.get $3 + local.get $9 i32.store offset=8 - local.get $2 + local.get $3 local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 + local.get $3 i32.store loop $for-loop|02 - local.get $5 + local.get $0 local.get $8 i32.lt_s if - local.get $5 + local.get $0 i32.const 12 i32.mul local.get $7 i32.add - local.tee $10 + local.tee $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $10 - f32.load - local.set $4 local.get $2 - i32.load offset=12 + f32.load + local.set $5 local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $3 + i32.load offset=12 + local.get $2 i32.le_u if - local.get $1 + local.get $2 i32.const 0 i32.lt_s if @@ -19593,53 +19598,53 @@ call $~lib/builtins/abort unreachable end + local.get $3 local.get $2 - local.get $1 i32.const 1 i32.add - local.tee $10 + local.tee $9 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity - local.get $2 - local.get $10 + local.get $3 + local.get $9 i32.store offset=12 end - local.get $2 + local.get $3 i32.load offset=4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add - local.get $4 + local.get $5 f32.store end - local.get $5 + local.get $0 i32.const 1 i32.add - local.set $5 + local.set $0 br $for-loop|02 end end - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 call $~lib/map/Map#values - local.tee $7 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -19658,62 +19663,65 @@ i32.const 24 i32.const 28 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $12 i32.store - local.get $11 + local.get $12 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store local.get $1 if - local.get $11 + local.get $12 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $12 i32.const 3 i32.store offset=4 - local.get $11 + local.get $12 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 local.get $1 if - local.get $11 + local.get $12 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $12 i32.const 4 i32.store offset=12 - local.get $11 + local.get $12 i32.const 0 i32.store offset=16 - local.get $11 + local.get $12 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $12 + local.tee $10 i32.store offset=16 + i32.const 0 + local.set $1 loop $for-loop|2 - local.get $2 + local.get $3 i32.load offset=12 - local.get $9 + local.get $1 i32.gt_s if - local.get $2 + local.get $1 + local.tee $2 + local.get $3 i32.load offset=12 - local.get $9 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -19722,23 +19730,23 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load offset=4 - local.get $9 + local.get $2 i32.const 2 i32.shl i32.add f32.load - local.set $4 - local.get $7 - local.get $9 + local.set $5 + local.get $8 + local.get $2 call $~lib/array/Array#__get - local.set $8 - local.get $3 + local.set $9 + local.get $4 i32.load - local.get $3 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19785,7 +19793,7 @@ if (result i32) i32.const 0 else - local.get $4 + local.get $5 local.get $1 f32.load f32.eq @@ -19811,11 +19819,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $8 + local.get $9 i32.const 20 i32.sub f32.convert_i32_s @@ -19903,9 +19911,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $11 + local.get $12 i32.load - local.get $4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19916,26 +19924,26 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $6 - local.get $11 + local.tee $7 + local.get $12 i32.load offset=4 i32.and i32.const 2 @@ -19948,20 +19956,21 @@ local.get $0 if local.get $0 - i32.load offset=8 local.tee $1 + i32.load offset=8 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $5 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $1 + local.get $0 i32.const -2 i32.and local.set $0 @@ -19969,23 +19978,23 @@ end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 - local.get $4 + local.get $1 + local.get $5 f32.store offset=4 else - local.get $11 + local.get $12 i32.load offset=16 - local.get $11 + local.get $12 i32.load offset=12 i32.eq if - local.get $11 + local.get $12 i32.load offset=20 - local.get $11 + local.get $12 i32.load offset=12 i32.const 3 i32.mul @@ -19993,10 +20002,10 @@ i32.div_s i32.lt_s if (result i32) - local.get $11 + local.get $12 i32.load offset=4 else - local.get $11 + local.get $12 i32.load offset=4 i32.const 1 i32.shl @@ -20032,16 +20041,16 @@ i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=4 - local.get $11 + local.get $12 i32.load offset=8 - local.tee $10 - local.get $11 + local.tee $11 + local.get $12 i32.load offset=16 i32.const 12 i32.mul @@ -20050,27 +20059,26 @@ local.get $1 local.set $0 loop $while-continue|00 - local.get $10 + local.get $11 local.get $16 i32.ne if - local.get $10 + local.get $11 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $10 + local.get $11 f32.load local.tee $13 f32.store local.get $0 - local.get $10 + local.get $11 f32.load offset=4 f32.store offset=4 local.get $0 - local.get $14 local.get $13 i32.reinterpret_f32 i32.const -1028477379 @@ -20082,24 +20090,25 @@ i32.const 668265263 i32.mul local.tee $17 - local.get $17 i32.const 15 i32.shr_u + local.get $17 i32.xor i32.const -2048144777 i32.mul local.tee $17 - local.get $17 i32.const 13 i32.shr_u + local.get $17 i32.xor i32.const -1028477379 i32.mul local.tee $17 - local.get $17 i32.const 16 i32.shr_u + local.get $17 i32.xor + local.get $14 i32.and i32.const 2 i32.shl @@ -20116,39 +20125,39 @@ i32.add local.set $0 end - local.get $10 + local.get $11 i32.const 12 i32.add - local.set $10 + local.set $11 br $while-continue|00 end end - local.get $11 + local.get $12 local.get $15 i32.store local.get $15 if - local.get $11 + local.get $12 local.get $15 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 + local.get $12 local.get $14 i32.store offset=4 - local.get $11 + local.get $12 local.get $1 i32.store offset=8 local.get $1 if - local.get $11 + local.get $12 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $5 + local.get $12 + local.get $6 i32.store offset=12 - local.get $11 - local.get $11 + local.get $12 + local.get $12 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -20157,12 +20166,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.load offset=8 local.tee $0 i32.store - local.get $11 - local.get $11 + local.get $12 + local.get $12 i32.load offset=16 local.tee $1 i32.const 1 @@ -20174,23 +20183,23 @@ local.get $0 i32.add local.tee $0 - local.get $4 + local.get $5 f32.store local.get $0 - local.get $4 + local.get $5 f32.store offset=4 - local.get $11 - local.get $11 + local.get $12 + local.get $12 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $11 + local.get $12 i32.load - local.get $11 + local.get $12 i32.load offset=4 - local.get $6 + local.get $7 i32.and i32.const 2 i32.shl @@ -20206,21 +20215,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - local.get $8 + local.get $10 + local.get $9 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $9 + local.get $2 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|2 end end - local.get $11 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -20232,7 +20241,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -20245,17 +20254,17 @@ unreachable end f32.const 0 - local.set $4 + local.set $5 loop $for-loop|3 - local.get $4 + local.get $5 f32.const 50 f32.lt if - local.get $3 + local.get $4 i32.load - local.get $3 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20302,7 +20311,7 @@ if (result i32) i32.const 0 else - local.get $4 + local.get $5 local.get $1 f32.load f32.eq @@ -20328,10 +20337,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $4 + local.get $5 call $~lib/map/Map#get - local.get $4 + local.get $5 i32.trunc_f32_s i32.const 20 i32.add @@ -20344,14 +20353,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $4 + local.get $5 call $~lib/map/Map#delete - local.get $3 + local.get $4 i32.load - local.get $3 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20398,7 +20407,7 @@ if (result i32) i32.const 0 else - local.get $4 + local.get $5 local.get $1 f32.load f32.eq @@ -20423,14 +20432,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 f32.const 1 f32.add - local.set $4 + local.set $5 br $for-loop|3 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -20443,17 +20452,17 @@ unreachable end f32.const 0 - local.set $4 + local.set $5 loop $for-loop|4 - local.get $4 + local.get $5 f32.const 50 f32.lt if - local.get $3 + local.get $4 i32.load - local.get $3 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20500,7 +20509,7 @@ if (result i32) i32.const 0 else - local.get $4 + local.get $5 local.get $1 f32.load f32.eq @@ -20525,18 +20534,18 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 local.get $4 + local.get $5 + local.get $5 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $4 i32.load - local.get $3 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20583,7 +20592,7 @@ if (result i32) i32.const 0 else - local.get $4 + local.get $5 local.get $1 f32.load f32.eq @@ -20609,14 +20618,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $4 + local.get $5 call $~lib/map/Map#delete - local.get $3 + local.get $4 i32.load - local.get $3 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $5 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20663,7 +20672,7 @@ if (result i32) i32.const 0 else - local.get $4 + local.get $5 local.get $1 f32.load f32.eq @@ -20688,14 +20697,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 f32.const 1 f32.add - local.set $4 + local.set $5 br $for-loop|4 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -20707,9 +20716,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 call $~lib/map/Map#clear - local.get $3 + local.get $4 i32.load offset=20 if i32.const 0 @@ -21263,16 +21272,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21281,62 +21290,62 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 0 i32.store - local.get $6 + local.get $4 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store - local.get $10 + local.get $11 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 if - local.get $10 - local.get $6 + local.get $11 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 + local.get $11 i32.const 3 i32.store offset=4 - local.get $10 + local.get $11 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $4 i32.store offset=8 - local.get $6 + local.get $4 if - local.get $10 - local.get $6 + local.get $11 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 + local.get $11 i32.const 4 i32.store offset=12 - local.get $10 + local.get $11 i32.const 0 i32.store offset=16 - local.get $10 + local.get $11 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $10 + local.get $2 + local.get $11 i32.store loop $for-loop|0 local.get $3 f64.const 100 f64.lt if - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#has if @@ -21347,14 +21356,14 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 local.get $3 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#has i32.eqz @@ -21366,7 +21375,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#get local.get $3 @@ -21389,7 +21398,7 @@ br $for-loop|0 end end - local.get $10 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -21408,7 +21417,7 @@ f64.const 100 f64.lt if - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#has i32.eqz @@ -21420,7 +21429,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#get local.get $3 @@ -21436,14 +21445,14 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 local.get $3 i32.trunc_f64_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#has i32.eqz @@ -21455,7 +21464,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#get local.get $3 @@ -21478,7 +21487,7 @@ br $for-loop|1 end end - local.get $10 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -21491,7 +21500,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21500,16 +21509,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $10 + local.get $11 i32.load offset=8 - local.set $7 - local.get $10 + local.set $6 + local.get $11 i32.load offset=16 - local.set $8 - local.get $1 + local.set $7 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -21518,28 +21527,28 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $8 i64.const 0 i64.store - local.get $9 + local.get $8 i32.const 16 i32.const 30 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $12 i32.store - local.get $11 + local.get $12 i32.const 0 i32.store - local.get $11 + local.get $12 i32.const 0 i32.store offset=4 - local.get $11 + local.get $12 i32.const 0 i32.store offset=8 - local.get $11 + local.get $12 i32.const 0 i32.store offset=12 - local.get $8 + local.get $7 i32.const 134217727 i32.gt_u if @@ -21551,74 +21560,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.const 8 - local.get $8 + local.get $7 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $9 i32.store offset=4 - local.get $11 local.get $12 + local.get $9 i32.store - local.get $12 + local.get $9 if - local.get $11 local.get $12 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 local.get $12 - i32.store offset=4 - local.get $11 local.get $9 - i32.store offset=8 - local.get $11 + i32.store offset=4 + local.get $12 local.get $8 + i32.store offset=8 + local.get $12 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $11 + local.get $2 + local.get $12 i32.store loop $for-loop|02 - local.get $2 - local.get $8 + local.get $0 + local.get $7 i32.lt_s if - local.get $2 + local.get $0 i32.const 4 i32.shl - local.get $7 + local.get $6 i32.add - local.tee $9 + local.tee $2 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $9 + local.get $2 f64.load local.set $3 - local.get $11 - i32.load offset=12 local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $12 + i32.load offset=12 + local.get $2 i32.le_u if - local.get $1 + local.get $2 i32.const 0 i32.lt_s if @@ -21629,53 +21638,53 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $12 + local.get $2 i32.const 1 i32.add - local.tee $9 + local.tee $8 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $11 - local.get $9 + local.get $12 + local.get $8 i32.store offset=12 end - local.get $11 + local.get $12 i32.load offset=4 - local.get $1 + local.get $2 i32.const 3 i32.shl i32.add local.get $3 f64.store end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|02 end end - local.get $11 - local.get $0 + local.get $12 + local.get $1 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $11 - local.get $0 + local.get $12 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $11 + local.get $4 + local.get $12 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 call $~lib/map/Map#values - local.tee $12 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21694,62 +21703,65 @@ i32.const 24 i32.const 31 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $14 i32.store - local.get $13 + local.get $14 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store local.get $1 if - local.get $13 + local.get $14 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $13 + local.get $14 i32.const 3 i32.store offset=4 - local.get $13 + local.get $14 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=8 local.get $1 if - local.get $13 + local.get $14 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $13 + local.get $14 i32.const 4 i32.store offset=12 - local.get $13 + local.get $14 i32.const 0 i32.store offset=16 - local.get $13 + local.get $14 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 + local.get $14 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $6 + local.tee $15 i32.store offset=16 + i32.const 0 + local.set $1 loop $for-loop|2 - local.get $11 + local.get $12 i32.load offset=12 - local.get $4 + local.get $1 i32.gt_s if - local.get $11 + local.get $1 + local.tee $2 + local.get $12 i32.load offset=12 - local.get $4 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -21758,19 +21770,19 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $12 i32.load offset=4 - local.get $4 + local.get $2 i32.const 3 i32.shl i32.add f64.load local.set $3 - local.get $12 - local.get $4 + local.get $13 + local.get $2 call $~lib/array/Array#__get - local.set $7 - local.get $10 + local.set $16 + local.get $11 local.get $3 call $~lib/map/Map#has i32.eqz @@ -21782,8 +21794,8 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $7 + local.get $11 + local.get $16 i32.const 20 i32.sub f64.convert_i32_s @@ -21808,7 +21820,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $13 + local.get $14 i32.load local.get $3 i64.reinterpret_f64 @@ -21852,8 +21864,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $14 - local.get $13 + local.tee $6 + local.get $14 i32.load offset=4 i32.and i32.const 2 @@ -21866,20 +21878,21 @@ local.get $0 if local.get $0 - i32.load offset=16 local.tee $1 + i32.load offset=16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $3 - local.get $0 + local.get $1 f64.load f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $0 i32.const -2 i32.and local.set $0 @@ -21887,23 +21900,23 @@ end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 + local.get $1 local.get $3 f64.store offset=8 else - local.get $13 + local.get $14 i32.load offset=16 - local.get $13 + local.get $14 i32.load offset=12 i32.eq if - local.get $13 + local.get $14 i32.load offset=20 - local.get $13 + local.get $14 i32.load offset=12 i32.const 3 i32.mul @@ -21911,17 +21924,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $13 + local.get $14 i32.load offset=4 else - local.get $13 + local.get $14 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21935,14 +21948,14 @@ i64.const 0 i64.store local.get $0 - local.get $8 + local.get $9 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -21950,41 +21963,41 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $7 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $1 i32.store offset=4 - local.get $13 + local.get $14 i32.load offset=8 - local.tee $2 - local.get $13 + local.tee $4 + local.get $14 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $16 + local.set $8 local.get $1 local.set $0 loop $while-continue|00 - local.get $2 - local.get $16 + local.get $4 + local.get $8 i32.ne if - local.get $2 + local.get $4 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $2 + local.get $4 f64.load local.tee $17 f64.store local.get $0 - local.get $2 + local.get $4 f64.load offset=8 f64.store offset=8 local.get $0 @@ -22030,11 +22043,11 @@ i32.const 16 i32.shr_u i32.xor - local.get $8 + local.get $9 i32.and i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add local.tee $18 i32.load @@ -22047,39 +22060,39 @@ i32.add local.set $0 end - local.get $2 + local.get $4 i32.const 24 i32.add - local.set $2 + local.set $4 br $while-continue|00 end end - local.get $13 - local.get $9 + local.get $14 + local.get $10 i32.store - local.get $9 + local.get $10 if - local.get $13 - local.get $9 + local.get $14 + local.get $10 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $13 - local.get $8 + local.get $14 + local.get $9 i32.store offset=4 - local.get $13 + local.get $14 local.get $1 i32.store offset=8 local.get $1 if - local.get $13 + local.get $14 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $13 - local.get $15 + local.get $14 + local.get $7 i32.store offset=12 - local.get $13 - local.get $13 + local.get $14 + local.get $14 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -22088,12 +22101,12 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $14 i32.load offset=8 local.tee $0 i32.store - local.get $13 - local.get $13 + local.get $14 + local.get $14 i32.load offset=16 local.tee $1 i32.const 1 @@ -22110,18 +22123,18 @@ local.get $0 local.get $3 f64.store offset=8 - local.get $13 - local.get $13 + local.get $14 + local.get $14 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $13 + local.get $14 i32.load - local.get $13 - i32.load offset=4 local.get $14 + i32.load offset=4 + local.get $6 i32.and i32.const 2 i32.shl @@ -22137,21 +22150,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $7 + local.get $15 + local.get $16 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|2 end end - local.get $13 + local.get $14 i32.load offset=20 i32.const 100 i32.ne @@ -22163,7 +22176,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -22182,7 +22195,7 @@ f64.const 50 f64.lt if - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#has i32.eqz @@ -22194,7 +22207,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#get local.get $3 @@ -22210,10 +22223,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#delete - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#has if @@ -22231,7 +22244,7 @@ br $for-loop|3 end end - local.get $10 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -22250,7 +22263,7 @@ f64.const 50 f64.lt if - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#has if @@ -22261,14 +22274,14 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 local.get $3 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#has i32.eqz @@ -22280,10 +22293,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#delete - local.get $10 + local.get $11 local.get $3 call $~lib/map/Map#has if @@ -22301,7 +22314,7 @@ br $for-loop|4 end end - local.get $10 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -22313,9 +22326,9 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 call $~lib/map/Map#clear - local.get $10 + local.get $11 i32.load offset=20 if i32.const 0 @@ -22546,23 +22559,23 @@ i32.const 668265263 i32.mul local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $1 i32.xor local.tee $4 local.get $0 @@ -22801,65 +22814,67 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store local.get $0 i32.load offset=8 - local.set $3 - local.get $4 + local.set $2 + local.get $3 local.get $0 i32.load offset=16 - local.tee $4 - call $~lib/array/Array#constructor local.tee $5 + call $~lib/array/Array#constructor + local.tee $4 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $2 - local.get $4 + local.get $1 + local.get $5 i32.lt_s if - local.get $2 + local.get $1 i32.const 12 i32.mul - local.get $3 + local.get $2 i32.add - local.tee $0 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $5 - local.get $1 + local.get $4 local.get $0 + local.get $3 i32.load offset=4 call $~lib/array/Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end - local.get $5 - local.get $1 + local.get $4 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $5 - local.get $1 + local.get $4 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 ) (func $~lib/map/Map#constructor (result i32) (local $0 i32) @@ -22964,23 +22979,23 @@ i32.const 668265263 i32.mul local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $1 i32.xor local.tee $4 local.get $0 @@ -23142,23 +23157,23 @@ i32.const 668265263 i32.mul local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $1 i32.xor local.tee $4 local.get $0 @@ -23321,23 +23336,23 @@ i32.const 668265263 i32.mul local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $1 i32.xor local.tee $4 local.get $0 @@ -23501,23 +23516,23 @@ i32.const 668265263 i32.mul local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $1 i32.xor local.tee $4 local.get $0 @@ -23679,23 +23694,23 @@ i32.const 668265263 i32.mul local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $1 i32.xor local.tee $4 local.get $0 @@ -24029,65 +24044,67 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store local.get $0 i32.load offset=8 - local.set $3 - local.get $4 + local.set $2 + local.get $3 local.get $0 i32.load offset=16 - local.tee $4 - call $~lib/array/Array#constructor local.tee $5 + call $~lib/array/Array#constructor + local.tee $4 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $2 - local.get $4 + local.get $1 + local.get $5 i32.lt_s if - local.get $2 + local.get $1 i32.const 4 i32.shl - local.get $3 + local.get $2 i32.add - local.tee $0 + local.tee $3 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $5 - local.get $1 + local.get $4 local.get $0 + local.get $3 i32.load offset=8 call $~lib/array/Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end - local.get $5 - local.get $1 + local.get $4 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $5 - local.get $1 + local.get $4 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $4 ) (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -24311,23 +24328,23 @@ i32.const 668265263 i32.mul local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $3 i32.xor local.tee $4 local.get $0 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 42e56212f4..3dba7baecc 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -2821,73 +2821,68 @@ call $std/math/check ) (func $std/math/test_atan2 (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) - (local $4 f64) - (local $5 f64) + (local $4 i32) + (local $5 i64) (local $6 i32) (local $7 i64) (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - block $__inlined_func$~lib/math/NativeMath.atan2 + (local $9 i32) + (local $10 f64) + block $__inlined_func$~lib/math/NativeMath.atan2 (result f64) + local.get $1 + local.get $0 + f64.add + local.get $0 local.get $0 - local.tee $4 - local.get $4 f64.ne local.get $1 - local.tee $5 - local.get $5 + local.get $1 f64.ne i32.or - if - local.get $5 - local.get $4 - f64.add - local.set $1 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - local.get $4 + br_if $__inlined_func$~lib/math/NativeMath.atan2 + drop + local.get $0 i64.reinterpret_f64 - local.tee $7 + local.tee $5 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $11 - local.get $5 + local.set $9 + local.get $1 i64.reinterpret_f64 - local.tee $9 + local.tee $7 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $10 + local.set $8 + local.get $7 + i32.wrap_i64 + local.tee $6 + local.get $8 i32.const 1072693248 i32.sub - local.get $9 - i32.wrap_i64 - local.tee $8 i32.or i32.eqz if - local.get $4 + local.get $0 call $~lib/math/NativeMath.atan - local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $10 + local.get $8 i32.const 30 i32.shr_u i32.const 2 i32.and - local.get $11 + local.get $9 i32.const 31 i32.shr_u i32.or - local.set $6 - local.get $11 + local.set $4 + local.get $9 i32.const 2147483647 i32.and - local.tee $11 - local.get $7 + local.tee $9 + local.get $5 i32.wrap_i64 i32.or i32.eqz @@ -2895,158 +2890,141 @@ block $break|0 block $case3|0 block $case2|0 - block $case1|0 - local.get $6 - br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0 + block $case0|0 + local.get $4 + br_table $case0|0 $case0|0 $case2|0 $case3|0 $break|0 end - local.get $4 - local.set $1 + local.get $0 br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const 3.141592653589793 - local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const -3.141592653589793 - local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end end - local.get $8 - local.get $10 - i32.const 2147483647 - i32.and - local.tee $10 - i32.or - i32.eqz - if - f64.const -1.5707963267948966 - f64.const 1.5707963267948966 + block $folding-inner0 local.get $6 - i32.const 1 + local.get $8 + i32.const 2147483647 i32.and - select - local.set $1 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - local.get $10 - i32.const 2146435072 - i32.eq - if - local.get $11 + local.tee $8 + i32.or + i32.eqz + br_if $folding-inner0 + local.get $8 i32.const 2146435072 i32.eq + if + local.get $9 + i32.const 2146435072 + i32.eq + if (result f64) + f64.const 2.356194490192345 + f64.const 0.7853981633974483 + local.get $4 + i32.const 2 + i32.and + select + local.tee $10 + f64.neg + local.get $10 + local.get $4 + i32.const 1 + i32.and + select + else + f64.const 3.141592653589793 + f64.const 0 + local.get $4 + i32.const 2 + i32.and + select + local.tee $10 + f64.neg + local.get $10 + local.get $4 + i32.const 1 + i32.and + select + end + br $__inlined_func$~lib/math/NativeMath.atan2 + end + local.get $9 + i32.const 2146435072 + i32.eq + local.get $9 + local.get $8 + i32.const 67108864 + i32.add + i32.gt_u + i32.or + br_if $folding-inner0 + local.get $8 + local.get $9 + i32.const 67108864 + i32.add + i32.gt_u + i32.const 0 + local.get $4 + i32.const 2 + i32.and + select if (result f64) - f64.const 2.356194490192345 - f64.const 0.7853981633974483 - local.get $6 - i32.const 2 - i32.and - select - local.tee $1 - f64.neg - local.get $1 - local.get $6 - i32.const 1 - i32.and - select - else - f64.const 3.141592653589793 f64.const 0 - local.get $6 - i32.const 2 - i32.and - select - local.tee $1 - f64.neg + else + local.get $0 local.get $1 - local.get $6 - i32.const 1 - i32.and - select + f64.div + f64.abs + call $~lib/math/NativeMath.atan end - local.set $1 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - local.get $11 - i32.const 2146435072 - i32.eq - local.get $11 - local.get $10 - i32.const 67108864 - i32.add - i32.gt_u - i32.or - if - f64.const -1.5707963267948966 - f64.const 1.5707963267948966 - local.get $6 - i32.const 1 - i32.and - select - local.set $1 - br $__inlined_func$~lib/math/NativeMath.atan2 - end - local.get $10 - local.get $11 - i32.const 67108864 - i32.add - i32.gt_u - i32.const 0 - local.get $6 - i32.const 2 - i32.and - select - if (result f64) - f64.const 0 - else - local.get $4 - local.get $5 - f64.div - f64.abs - call $~lib/math/NativeMath.atan - end - local.set $1 - block $break|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $6 - br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 + local.set $10 + block $break|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $4 + br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 + end + local.get $10 + br $__inlined_func$~lib/math/NativeMath.atan2 end + local.get $10 + f64.neg br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $1 - f64.neg - local.set $1 + f64.const 3.141592653589793 + local.get $10 + f64.const 1.2246467991473532e-16 + f64.sub + f64.sub br $__inlined_func$~lib/math/NativeMath.atan2 end - f64.const 3.141592653589793 - local.get $1 + local.get $10 f64.const 1.2246467991473532e-16 f64.sub + f64.const 3.141592653589793 f64.sub - local.set $1 br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $1 - f64.const 1.2246467991473532e-16 - f64.sub - f64.const 3.141592653589793 - f64.sub - local.set $1 - br $__inlined_func$~lib/math/NativeMath.atan2 + unreachable end - unreachable + f64.const -1.5707963267948966 + f64.const 1.5707963267948966 + local.get $4 + i32.const 1 + i32.and + select end - local.get $1 local.get $2 local.get $3 call $std/math/check if (result i32) local.get $0 - local.get $5 + local.get $1 call $~lib/bindings/Math/atan2 local.get $2 local.get $3 @@ -44093,17 +44071,17 @@ global.get $~lib/math/random_state1_64 local.tee $2 global.set $~lib/math/random_state0_64 - local.get $2 local.get $6 i64.const 23 i64.shl local.get $6 i64.xor local.tee $6 - local.get $6 i64.const 17 i64.shr_u + local.get $6 i64.xor + local.get $2 i64.xor local.get $2 i64.const 26 diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index fe98aa7758..de1df4d111 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -679,43 +679,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17860 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -726,221 +799,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17860 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17860 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17860 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17860 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1053,7 +1051,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1130,16 +1128,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.tee $1 local.get $0 - local.get $2 + local.get $1 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1192,7 +1190,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1207,7 +1205,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1230,8 +1228,8 @@ i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and @@ -1244,12 +1242,12 @@ i32.const 8 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 local.set $3 local.get $0 + local.get $1 global.get $~lib/rt/itcms/white - local.get $2 i32.or i32.store offset=4 local.get $0 @@ -1263,7 +1261,7 @@ local.get $0 i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1279,42 +1277,41 @@ i32.const 20 i32.add local.tee $0 - local.tee $2 i32.const 0 i32.store8 - local.get $2 + local.get $0 i32.const 8 i32.add - local.tee $3 + local.tee $1 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $0 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $0 i32.const 0 i32.store8 offset=2 - local.get $3 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $3 + local.get $1 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $0 i32.const 0 i32.store8 offset=3 - local.get $3 + local.get $1 i32.const 4 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 local.get $0 i32.store local.get $0 @@ -1379,19 +1376,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1401,22 +1398,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17860 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1430,7 +1427,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1442,7 +1439,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1450,15 +1447,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1466,7 +1463,7 @@ else i32.const 1440 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1476,7 +1473,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -1494,25 +1491,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 05657b3824..ad5f943b49 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -738,43 +738,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17956 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -785,221 +858,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17956 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17956 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17956 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17956 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1973,23 +1971,22 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/a1 - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a @@ -3248,23 +3245,22 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/ais1 - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais2 - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais @@ -3312,23 +3308,22 @@ call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii2 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/operator-overloading/aii1 - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/aii2 - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii @@ -3480,19 +3475,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -3502,22 +3497,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17956 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -3531,7 +3526,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -3543,7 +3538,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -3551,15 +3546,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -3567,7 +3562,7 @@ else i32.const 1520 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -3577,7 +3572,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1524 @@ -3595,25 +3590,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index ba351c0b74..bb8d8edca3 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -201,8 +201,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -826,43 +824,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18220 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -873,221 +944,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18220 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18220 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18220 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18220 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1769,7 +1765,6 @@ local.tee $8 i32.store8 local.get $2 - local.get $1 local.get $8 i32.extend8_s i32.const -1028477379 @@ -1781,24 +1776,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -2691,7 +2687,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) local.get $0 i32.load offset=8 local.tee $4 @@ -2713,9 +2708,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i32.load - local.set $7 local.get $1 i32.const 8 local.get $1 @@ -2724,8 +2716,11 @@ select local.get $2 i32.shl - local.set $6 - block $__inlined_func$~lib/rt/itcms/__renew + local.set $5 + local.get $0 + i32.load + local.tee $2 + block $__inlined_func$~lib/rt/itcms/__renew (result i32) local.get $3 if local.get $4 @@ -2738,19 +2733,18 @@ i32.lt_u select local.tee $1 - local.get $6 + local.get $5 local.get $1 - local.get $6 + local.get $5 i32.gt_u select - local.set $6 + local.set $5 end - local.get $6 - local.get $7 - local.tee $1 + local.get $5 + local.get $2 i32.const 20 i32.sub - local.tee $2 + local.tee $1 i32.load i32.const -4 i32.and @@ -2758,84 +2752,85 @@ i32.sub i32.le_u if - local.get $2 - local.get $6 + local.get $1 + local.get $5 i32.store offset=16 + local.get $2 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $6 - local.get $2 + local.get $5 + local.get $1 i32.load offset=12 call $~lib/rt/itcms/__new - local.set $3 - local.get $6 - local.get $2 + local.set $6 + local.get $5 + local.get $1 i32.load offset=16 - local.tee $2 - local.get $2 - local.get $6 + local.tee $1 + local.get $1 + local.get $5 i32.gt_u select - local.set $8 + local.set $7 block $~lib/util/memory/memmove|inlined.0 - local.get $3 - local.tee $2 - local.get $1 + local.get $2 + local.get $6 + local.tee $1 i32.eq br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 local.get $2 + local.get $1 i32.sub - local.get $8 + local.get $7 i32.sub i32.const 0 - local.get $8 + local.get $7 i32.const 1 i32.shl i32.sub i32.le_u if - local.get $2 local.get $1 - local.get $8 + local.get $2 + local.get $7 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $1 local.get $2 - i32.gt_u + i32.lt_u if - local.get $1 + local.get $2 i32.const 7 i32.and - local.get $2 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $2 + local.get $1 i32.const 7 i32.and if - local.get $8 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $8 + local.get $7 i32.const 1 i32.sub - local.set $8 - local.get $2 - local.tee $5 + local.set $7 + local.get $1 + local.tee $3 i32.const 1 i32.add - local.set $2 - local.get $1 + local.set $1 + local.get $2 local.tee $4 i32.const 1 i32.add - local.set $1 - local.get $5 + local.set $2 + local.get $3 local.get $4 i32.load8_u i32.store8 @@ -2843,81 +2838,81 @@ end end loop $while-continue|1 - local.get $8 + local.get $7 i32.const 8 i32.ge_u if - local.get $2 local.get $1 + local.get $2 i64.load i64.store - local.get $8 + local.get $7 i32.const 8 i32.sub - local.set $8 - local.get $2 - i32.const 8 - i32.add - local.set $2 + local.set $7 local.get $1 i32.const 8 i32.add local.set $1 + local.get $2 + i32.const 8 + i32.add + local.set $2 br $while-continue|1 end end end loop $while-continue|2 - local.get $8 + local.get $7 if - local.get $2 - local.tee $5 + local.get $1 + local.tee $3 i32.const 1 i32.add - local.set $2 - local.get $1 + local.set $1 + local.get $2 local.tee $4 i32.const 1 i32.add - local.set $1 - local.get $5 + local.set $2 + local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $8 + local.get $7 i32.const 1 i32.sub - local.set $8 + local.set $7 br $while-continue|2 end end else - local.get $1 + local.get $2 i32.const 7 i32.and - local.get $2 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $2 - local.get $8 + local.get $1 + local.get $7 i32.add i32.const 7 i32.and if - local.get $8 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $8 + local.get $7 i32.const 1 i32.sub - local.tee $8 - local.get $2 - i32.add + local.tee $7 local.get $1 - local.get $8 + i32.add + local.get $2 + local.get $7 i32.add i32.load8_u i32.store8 @@ -2925,18 +2920,18 @@ end end loop $while-continue|4 - local.get $8 + local.get $7 i32.const 8 i32.ge_u if - local.get $8 + local.get $7 i32.const 8 i32.sub - local.tee $8 - local.get $2 - i32.add + local.tee $7 local.get $1 - local.get $8 + i32.add + local.get $2 + local.get $7 i32.add i64.load i64.store @@ -2945,16 +2940,16 @@ end end loop $while-continue|5 - local.get $8 + local.get $7 if - local.get $8 + local.get $7 i32.const 1 i32.sub - local.tee $8 - local.get $2 - i32.add + local.tee $7 local.get $1 - local.get $8 + i32.add + local.get $2 + local.get $7 i32.add i32.load8_u i32.store8 @@ -2963,11 +2958,9 @@ end end end - local.get $3 - local.set $1 + local.get $6 end - local.get $1 - local.get $7 + local.tee $1 i32.ne if local.get $0 @@ -2984,7 +2977,7 @@ end end local.get $0 - local.get $6 + local.get $5 i32.store offset=8 end ) @@ -3216,8 +3209,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3228,28 +3219,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 call $~lib/set/Set#constructor - local.tee $4 + local.tee $2 i32.store loop $for-loop|1 - local.get $1 + local.get $0 i32.extend8_s i32.const 100 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3259,62 +3250,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 if i32.const 0 i32.const 1568 @@ -3323,15 +3314,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3341,62 +3332,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -3408,14 +3399,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -3428,19 +3419,19 @@ unreachable end i32.const 50 - local.set $1 + local.set $0 loop $for-loop|3 - local.get $1 + local.get $0 i32.extend8_s i32.const 100 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3450,62 +3441,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -3517,15 +3508,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3535,62 +3526,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -3602,14 +3593,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -3622,7 +3613,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3631,16 +3622,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $4 + local.get $2 i32.load offset=8 - local.set $7 - local.get $4 + local.set $5 + local.get $2 i32.load offset=16 local.set $1 - local.get $3 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3649,25 +3640,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $6 i64.const 0 i64.store - local.get $8 + local.get $6 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $6 i32.store - local.get $9 + local.get $6 i32.const 0 i32.store - local.get $9 + local.get $6 i32.const 0 i32.store offset=4 - local.get $9 + local.get $6 i32.const 0 i32.store offset=8 - local.get $9 + local.get $6 i32.const 0 i32.store offset=12 local.get $1 @@ -3688,103 +3679,107 @@ i32.const 8 i32.gt_u select - local.tee $8 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $8 i32.store offset=4 - local.get $9 - local.get $10 + local.get $6 + local.get $8 i32.store - local.get $10 + local.get $8 if - local.get $9 - local.get $10 + local.get $6 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 - local.get $10 - i32.store offset=4 - local.get $9 + local.get $6 local.get $8 + i32.store offset=4 + local.get $6 + local.get $7 i32.store offset=8 - local.get $9 + local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $9 + local.get $0 + local.get $6 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 local.get $1 - local.get $5 + local.get $3 i32.gt_s if - local.get $5 + local.get $3 i32.const 3 i32.shl - local.get $7 + local.get $5 i32.add - local.tee $3 + local.tee $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $9 - local.get $2 - local.get $3 + local.get $6 + local.get $0 + local.get $7 i32.load8_s call $~lib/array/Array#__set - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $9 - local.get $2 + local.get $6 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $9 - local.get $2 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $6 - local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store offset=8 + i32.const 0 + local.set $0 loop $for-loop|4 - local.get $9 + local.get $6 i32.load offset=12 local.get $0 i32.gt_s if - local.get $9 + local.get $6 local.get $0 call $~lib/array/Array#__get - local.set $2 - local.get $4 + local.set $3 + local.get $2 i32.load - local.get $4 - i32.load offset=4 local.get $2 + i32.load offset=4 + local.get $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -3833,7 +3828,7 @@ else local.get $1 i32.load8_u - local.get $2 + local.get $3 i32.const 255 i32.and i32.eq @@ -3861,8 +3856,8 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $9 + local.get $4 + local.get $6 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -3873,10 +3868,10 @@ br $for-loop|4 end end - local.get $3 - i32.load offset=20 local.get $4 i32.load offset=20 + local.get $2 + i32.load offset=20 i32.ne if i32.const 0 @@ -3894,9 +3889,9 @@ i32.const 50 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -3909,44 +3904,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u local.get $1 i32.const 255 @@ -3954,17 +3949,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.ne i32.eqz @@ -3976,12 +3971,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -3994,44 +3989,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u local.get $1 i32.const 255 @@ -4039,17 +4034,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -4065,7 +4060,7 @@ br $for-loop|6 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -4085,9 +4080,9 @@ i32.const 50 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -4100,44 +4095,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u local.get $1 i32.const 255 @@ -4145,17 +4140,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -4164,12 +4159,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -4182,44 +4177,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u local.get $1 i32.const 255 @@ -4227,17 +4222,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.ne i32.eqz @@ -4249,12 +4244,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -4267,44 +4262,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u local.get $1 i32.const 255 @@ -4312,17 +4307,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -4338,7 +4333,7 @@ br $for-loop|8 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -4350,9 +4345,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/set/Set#clear - local.get $4 + local.get $2 i32.load offset=20 if i32.const 0 @@ -4452,7 +4447,6 @@ local.tee $8 i32.store8 local.get $2 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -4463,24 +4457,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -4842,8 +4837,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4854,29 +4847,29 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 call $~lib/set/Set#constructor - local.tee $4 + local.tee $2 i32.store loop $for-loop|1 - local.get $1 + local.get $0 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -4887,62 +4880,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 if i32.const 0 i32.const 1568 @@ -4951,15 +4944,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -4970,62 +4963,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -5037,14 +5030,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -5057,20 +5050,20 @@ unreachable end i32.const 50 - local.set $1 + local.set $0 loop $for-loop|3 - local.get $1 + local.get $0 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -5081,62 +5074,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -5148,15 +5141,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -5167,62 +5160,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load8_u - local.get $3 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -5234,14 +5227,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -5254,7 +5247,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5263,16 +5256,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $4 + local.get $2 i32.load offset=8 - local.set $7 - local.get $4 + local.set $5 + local.get $2 i32.load offset=16 local.set $1 - local.get $3 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5281,25 +5274,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $6 i64.const 0 i64.store - local.get $8 + local.get $6 i32.const 16 i32.const 6 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $6 i32.store - local.get $9 + local.get $6 i32.const 0 i32.store - local.get $9 + local.get $6 i32.const 0 i32.store offset=4 - local.get $9 + local.get $6 i32.const 0 i32.store offset=8 - local.get $9 + local.get $6 i32.const 0 i32.store offset=12 local.get $1 @@ -5320,103 +5313,107 @@ i32.const 8 i32.gt_u select - local.tee $8 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $8 i32.store offset=4 - local.get $9 - local.get $10 + local.get $6 + local.get $8 i32.store - local.get $10 + local.get $8 if - local.get $9 - local.get $10 + local.get $6 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 - local.get $10 - i32.store offset=4 - local.get $9 + local.get $6 local.get $8 + i32.store offset=4 + local.get $6 + local.get $7 i32.store offset=8 - local.get $9 + local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $9 + local.get $0 + local.get $6 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 local.get $1 - local.get $5 + local.get $3 i32.gt_s if - local.get $5 + local.get $3 i32.const 3 i32.shl - local.get $7 + local.get $5 i32.add - local.tee $3 + local.tee $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $9 - local.get $2 - local.get $3 + local.get $6 + local.get $0 + local.get $7 i32.load8_u call $~lib/array/Array#__set - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $9 - local.get $2 + local.get $6 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $9 - local.get $2 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $6 - local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store offset=8 + i32.const 0 + local.set $0 loop $for-loop|4 - local.get $9 + local.get $6 i32.load offset=12 local.get $0 i32.gt_s if - local.get $9 + local.get $6 local.get $0 call $~lib/array/Array#__get - local.set $2 - local.get $4 + local.set $3 + local.get $2 i32.load - local.get $4 - i32.load offset=4 local.get $2 + i32.load offset=4 + local.get $3 i32.const 255 i32.and i32.const -1028477379 @@ -5466,7 +5463,7 @@ else local.get $1 i32.load8_u - local.get $2 + local.get $3 i32.const 255 i32.and i32.eq @@ -5494,8 +5491,8 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $9 + local.get $4 + local.get $6 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -5506,10 +5503,10 @@ br $for-loop|4 end end - local.get $3 - i32.load offset=20 local.get $4 i32.load offset=20 + local.get $2 + i32.load offset=20 i32.ne if i32.const 0 @@ -5528,9 +5525,9 @@ i32.const 50 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -5544,44 +5541,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u local.get $1 i32.const 255 @@ -5589,17 +5586,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.ne i32.eqz @@ -5611,12 +5608,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -5630,44 +5627,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u local.get $1 i32.const 255 @@ -5675,17 +5672,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -5701,7 +5698,7 @@ br $for-loop|6 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -5722,9 +5719,9 @@ i32.const 50 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -5738,44 +5735,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u local.get $1 i32.const 255 @@ -5783,17 +5780,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -5802,12 +5799,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -5821,44 +5818,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u local.get $1 i32.const 255 @@ -5866,17 +5863,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.ne i32.eqz @@ -5888,12 +5885,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -5907,44 +5904,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u local.get $1 i32.const 255 @@ -5952,17 +5949,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -5978,7 +5975,7 @@ br $for-loop|8 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -5990,9 +5987,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/set/Set#clear - local.get $4 + local.get $2 i32.load offset=20 if i32.const 0 @@ -6092,7 +6089,6 @@ local.tee $8 i32.store16 local.get $2 - local.get $1 local.get $8 i32.extend16_s i32.const -1028477379 @@ -6104,24 +6100,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -6522,8 +6519,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -6534,28 +6529,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 call $~lib/set/Set#constructor - local.tee $4 + local.tee $2 i32.store loop $for-loop|1 - local.get $1 + local.get $0 i32.extend16_s i32.const 100 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -6565,62 +6560,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load16_u - local.get $3 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 if i32.const 0 i32.const 1568 @@ -6629,15 +6624,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -6647,62 +6642,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load16_u - local.get $3 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -6714,14 +6709,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -6734,19 +6729,19 @@ unreachable end i32.const 50 - local.set $1 + local.set $0 loop $for-loop|3 - local.get $1 + local.get $0 i32.extend16_s i32.const 100 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -6756,62 +6751,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load16_u - local.get $3 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -6823,15 +6818,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -6841,62 +6836,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load16_u - local.get $3 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -6908,14 +6903,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -6928,7 +6923,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6937,16 +6932,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $4 + local.get $2 i32.load offset=8 - local.set $7 - local.get $4 + local.set $5 + local.get $2 i32.load offset=16 local.set $1 - local.get $3 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6955,25 +6950,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $6 i64.const 0 i64.store - local.get $8 + local.get $6 i32.const 16 i32.const 8 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $6 i32.store - local.get $9 + local.get $6 i32.const 0 i32.store - local.get $9 + local.get $6 i32.const 0 i32.store offset=4 - local.get $9 + local.get $6 i32.const 0 i32.store offset=8 - local.get $9 + local.get $6 i32.const 0 i32.store offset=12 local.get $1 @@ -6996,103 +6991,107 @@ select i32.const 1 i32.shl - local.tee $8 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $8 i32.store offset=4 - local.get $9 - local.get $10 + local.get $6 + local.get $8 i32.store - local.get $10 + local.get $8 if - local.get $9 - local.get $10 + local.get $6 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 - local.get $10 - i32.store offset=4 - local.get $9 + local.get $6 local.get $8 + i32.store offset=4 + local.get $6 + local.get $7 i32.store offset=8 - local.get $9 + local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $9 + local.get $0 + local.get $6 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 local.get $1 - local.get $5 + local.get $3 i32.gt_s if - local.get $5 + local.get $3 i32.const 3 i32.shl - local.get $7 + local.get $5 i32.add - local.tee $3 + local.tee $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $9 - local.get $2 - local.get $3 + local.get $6 + local.get $0 + local.get $7 i32.load16_s call $~lib/array/Array#__set - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $9 - local.get $2 + local.get $6 + local.get $0 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $9 - local.get $2 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $6 - local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store offset=8 + i32.const 0 + local.set $0 loop $for-loop|4 - local.get $9 + local.get $6 i32.load offset=12 local.get $0 i32.gt_s if - local.get $9 + local.get $6 local.get $0 call $~lib/array/Array#__get - local.set $2 - local.get $4 + local.set $3 + local.get $2 i32.load - local.get $4 - i32.load offset=4 local.get $2 + i32.load offset=4 + local.get $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -7141,7 +7140,7 @@ else local.get $1 i32.load16_u - local.get $2 + local.get $3 i32.const 65535 i32.and i32.eq @@ -7169,8 +7168,8 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $9 + local.get $4 + local.get $6 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -7181,10 +7180,10 @@ br $for-loop|4 end end - local.get $3 - i32.load offset=20 local.get $4 i32.load offset=20 + local.get $2 + i32.load offset=20 i32.ne if i32.const 0 @@ -7202,9 +7201,9 @@ i32.const 50 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -7217,44 +7216,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u local.get $1 i32.const 65535 @@ -7262,17 +7261,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.ne i32.eqz @@ -7284,12 +7283,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -7302,44 +7301,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u local.get $1 i32.const 65535 @@ -7347,17 +7346,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -7373,7 +7372,7 @@ br $for-loop|6 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -7393,9 +7392,9 @@ i32.const 50 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -7408,44 +7407,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u local.get $1 i32.const 65535 @@ -7453,17 +7452,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -7472,12 +7471,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -7490,44 +7489,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u local.get $1 i32.const 65535 @@ -7535,17 +7534,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.ne i32.eqz @@ -7557,12 +7556,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -7575,44 +7574,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u local.get $1 i32.const 65535 @@ -7620,17 +7619,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -7646,7 +7645,7 @@ br $for-loop|8 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -7658,9 +7657,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/set/Set#clear - local.get $4 + local.get $2 i32.load offset=20 if i32.const 0 @@ -7760,7 +7759,6 @@ local.tee $8 i32.store16 local.get $2 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -7771,24 +7769,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -8152,8 +8151,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8164,29 +8161,29 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 call $~lib/set/Set#constructor - local.tee $4 + local.tee $2 i32.store loop $for-loop|1 - local.get $1 + local.get $0 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -8197,62 +8194,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load16_u - local.get $3 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 if i32.const 0 i32.const 1568 @@ -8261,15 +8258,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -8280,62 +8277,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load16_u - local.get $3 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -8347,14 +8344,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -8367,20 +8364,20 @@ unreachable end i32.const 50 - local.set $1 + local.set $0 loop $for-loop|3 - local.get $1 + local.get $0 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -8391,62 +8388,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load16_u - local.get $3 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -8458,15 +8455,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $3 + local.get $0 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -8477,62 +8474,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $6 + local.tee $4 i32.const 15 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $6 + local.tee $4 i32.const 13 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $6 + local.tee $4 i32.const 16 i32.shr_u - local.get $6 + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $6 + local.set $4 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.load offset=4 - local.tee $7 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 i32.load16_u - local.get $3 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $7 + local.get $5 i32.const -2 i32.and - local.set $6 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $6 + local.set $4 end - local.get $6 + local.get $4 i32.const 0 i32.ne i32.eqz @@ -8544,14 +8541,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -8564,7 +8561,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8573,16 +8570,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $4 + local.get $2 i32.load offset=8 - local.set $7 - local.get $4 + local.set $5 + local.get $2 i32.load offset=16 local.set $1 - local.get $3 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8591,25 +8588,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $6 i64.const 0 i64.store - local.get $8 + local.get $6 i32.const 16 i32.const 10 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $6 i32.store - local.get $9 + local.get $6 i32.const 0 i32.store - local.get $9 + local.get $6 i32.const 0 i32.store offset=4 - local.get $9 + local.get $6 i32.const 0 i32.store offset=8 - local.get $9 + local.get $6 i32.const 0 i32.store offset=12 local.get $1 @@ -8632,103 +8629,107 @@ select i32.const 1 i32.shl - local.tee $8 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $8 i32.store offset=4 - local.get $9 - local.get $10 + local.get $6 + local.get $8 i32.store - local.get $10 + local.get $8 if - local.get $9 - local.get $10 + local.get $6 + local.get $8 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 - local.get $10 - i32.store offset=4 - local.get $9 + local.get $6 local.get $8 + i32.store offset=4 + local.get $6 + local.get $7 i32.store offset=8 - local.get $9 + local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $9 + local.get $0 + local.get $6 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 local.get $1 - local.get $5 + local.get $3 i32.gt_s if - local.get $5 + local.get $3 i32.const 3 i32.shl - local.get $7 + local.get $5 i32.add - local.tee $3 + local.tee $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $9 - local.get $2 - local.get $3 + local.get $6 + local.get $0 + local.get $7 i32.load16_u call $~lib/array/Array#__set - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end - local.get $9 - local.get $2 + local.get $6 + local.get $0 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $9 - local.get $2 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $6 - local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store offset=8 + i32.const 0 + local.set $0 loop $for-loop|4 - local.get $9 + local.get $6 i32.load offset=12 local.get $0 i32.gt_s if - local.get $9 + local.get $6 local.get $0 call $~lib/array/Array#__get - local.set $2 - local.get $4 + local.set $3 + local.get $2 i32.load - local.get $4 - i32.load offset=4 local.get $2 + i32.load offset=4 + local.get $3 i32.const 65535 i32.and i32.const -1028477379 @@ -8778,7 +8779,7 @@ else local.get $1 i32.load16_u - local.get $2 + local.get $3 i32.const 65535 i32.and i32.eq @@ -8806,8 +8807,8 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $9 + local.get $4 + local.get $6 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -8818,10 +8819,10 @@ br $for-loop|4 end end - local.get $3 - i32.load offset=20 local.get $4 i32.load offset=20 + local.get $2 + i32.load offset=20 i32.ne if i32.const 0 @@ -8840,9 +8841,9 @@ i32.const 50 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -8856,44 +8857,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u local.get $1 i32.const 65535 @@ -8901,17 +8902,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.ne i32.eqz @@ -8923,12 +8924,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -8942,44 +8943,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u local.get $1 i32.const 65535 @@ -8987,17 +8988,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -9013,7 +9014,7 @@ br $for-loop|6 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -9034,9 +9035,9 @@ i32.const 50 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -9050,44 +9051,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u local.get $1 i32.const 65535 @@ -9095,17 +9096,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -9114,12 +9115,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -9133,44 +9134,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u local.get $1 i32.const 65535 @@ -9178,17 +9179,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.ne i32.eqz @@ -9200,12 +9201,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 local.tee $1 @@ -9219,44 +9220,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u local.get $1 i32.const 65535 @@ -9264,17 +9265,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 if i32.const 0 i32.const 1568 @@ -9290,7 +9291,7 @@ br $for-loop|8 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -9302,9 +9303,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/set/Set#clear - local.get $4 + local.get $2 i32.load offset=20 if i32.const 0 @@ -9404,7 +9405,6 @@ local.tee $8 i32.store local.get $2 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -9415,24 +9415,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -9827,8 +9828,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -9839,26 +9838,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor - local.tee $4 + local.tee $2 i32.store loop $for-loop|0 - local.get $3 + local.get $0 i32.const 100 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -9867,22 +9866,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -9891,36 +9890,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -9929,14 +9928,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -9945,22 +9944,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -9969,36 +9968,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -10008,14 +10007,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|0 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10028,17 +10027,17 @@ unreachable end i32.const 50 - local.set $3 + local.set $0 loop $for-loop|1 - local.get $3 + local.get $0 i32.const 100 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10047,22 +10046,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -10071,36 +10070,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -10110,14 +10109,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10126,22 +10125,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -10150,36 +10149,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -10189,14 +10188,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|1 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10209,7 +10208,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10218,16 +10217,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $4 i32.const 0 i32.store - local.get $4 + local.get $2 i32.load offset=8 - local.set $2 - local.get $4 + local.set $5 + local.get $2 i32.load offset=16 - local.set $9 - local.get $8 + local.set $6 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10236,28 +10235,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $7 i32.store - local.get $10 + local.get $7 i32.const 0 i32.store - local.get $10 + local.get $7 i32.const 0 i32.store offset=4 - local.get $10 + local.get $7 i32.const 0 i32.store offset=8 - local.get $10 + local.get $7 i32.const 0 i32.store offset=12 - local.get $9 + local.get $6 i32.const 268435455 i32.gt_u if @@ -10269,63 +10268,65 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $6 i32.const 8 - local.get $9 + local.get $6 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $3 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.store offset=4 - local.get $10 - local.get $6 + local.get $7 + local.get $0 i32.store - local.get $6 + local.get $0 if - local.get $10 - local.get $6 + local.get $7 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 - local.get $6 + local.get $7 + local.get $0 i32.store offset=4 - local.get $10 - local.get $3 + local.get $7 + local.get $8 i32.store offset=8 - local.get $10 - local.get $9 + local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $10 + local.get $4 + local.get $7 i32.store + i32.const 0 + local.set $0 loop $for-loop|02 - local.get $5 - local.get $9 + local.get $3 + local.get $6 i32.lt_s if - local.get $5 + local.get $3 i32.const 3 i32.shl - local.get $2 + local.get $5 i32.add - local.tee $3 + local.tee $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $10 + local.get $7 local.get $0 - local.get $3 + local.get $4 i32.load call $~lib/array/Array#__set local.get $0 @@ -10333,42 +10334,44 @@ i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|02 end end - local.get $10 + local.get $7 local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $7 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $7 - local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $3 i32.store offset=8 + i32.const 0 + local.set $0 loop $for-loop|2 - local.get $10 + local.get $7 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if - local.get $10 - local.get $1 + local.get $7 + local.get $0 call $~lib/array/Array#__get - local.tee $2 + local.tee $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10377,27 +10380,27 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $3 - local.get $4 + local.set $1 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 - local.get $3 + local.get $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -10406,12 +10409,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 local.tee $5 i32.const 1 @@ -10419,8 +10422,8 @@ if (result i32) i32.const 0 else - local.get $2 - local.get $3 + local.get $4 + local.get $1 i32.load i32.eq end @@ -10428,14 +10431,14 @@ local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -10445,21 +10448,21 @@ call $~lib/builtins/abort unreachable end + local.get $3 + local.get $7 local.get $0 - local.get $10 - local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|2 end end - local.get $0 + local.get $3 i32.load offset=20 - local.get $4 + local.get $2 i32.load offset=20 i32.ne if @@ -10471,18 +10474,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|3 - local.get $1 + local.get $0 i32.const 50 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10522,7 +10524,7 @@ if local.get $1 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -10534,7 +10536,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -10554,12 +10556,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -10601,7 +10603,7 @@ if local.get $1 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -10613,7 +10615,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -10635,11 +10637,11 @@ local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -10652,18 +10654,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|4 - local.get $1 + local.get $0 i32.const 50 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10703,7 +10704,7 @@ if local.get $1 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -10715,7 +10716,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -10734,12 +10735,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -10781,7 +10782,7 @@ if local.get $1 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -10793,7 +10794,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -10813,12 +10814,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -10860,7 +10861,7 @@ if local.get $1 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -10872,7 +10873,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -10894,11 +10895,11 @@ local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|4 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -10910,9 +10911,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/set/Set#clear - local.get $4 + local.get $2 i32.load offset=20 if i32.const 0 @@ -11012,7 +11013,6 @@ local.tee $8 i32.store local.get $2 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -11023,24 +11023,25 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -11396,8 +11397,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -11408,26 +11407,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor - local.tee $4 + local.tee $2 i32.store loop $for-loop|0 - local.get $3 + local.get $0 i32.const 100 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11436,22 +11435,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11460,36 +11459,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -11498,14 +11497,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11514,22 +11513,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11538,36 +11537,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -11577,14 +11576,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|0 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -11597,17 +11596,17 @@ unreachable end i32.const 50 - local.set $3 + local.set $0 loop $for-loop|1 - local.get $3 + local.get $0 i32.const 100 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11616,22 +11615,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11640,36 +11639,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -11679,14 +11678,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11695,22 +11694,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11719,36 +11718,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -11758,14 +11757,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|1 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -11778,7 +11777,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -11787,16 +11786,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $4 i32.const 0 i32.store - local.get $4 + local.get $2 i32.load offset=8 - local.set $2 - local.get $4 + local.set $5 + local.get $2 i32.load offset=16 - local.set $9 - local.get $8 + local.set $6 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11805,28 +11804,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 16 i32.const 14 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $7 i32.store - local.get $10 + local.get $7 i32.const 0 i32.store - local.get $10 + local.get $7 i32.const 0 i32.store offset=4 - local.get $10 + local.get $7 i32.const 0 i32.store offset=8 - local.get $10 + local.get $7 i32.const 0 i32.store offset=12 - local.get $9 + local.get $6 i32.const 268435455 i32.gt_u if @@ -11838,63 +11837,65 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $6 i32.const 8 - local.get $9 + local.get $6 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $3 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.store offset=4 - local.get $10 - local.get $6 + local.get $7 + local.get $0 i32.store - local.get $6 + local.get $0 if - local.get $10 - local.get $6 + local.get $7 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 - local.get $6 + local.get $7 + local.get $0 i32.store offset=4 - local.get $10 - local.get $3 + local.get $7 + local.get $8 i32.store offset=8 - local.get $10 - local.get $9 + local.get $7 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $10 + local.get $4 + local.get $7 i32.store + i32.const 0 + local.set $0 loop $for-loop|02 - local.get $5 - local.get $9 + local.get $3 + local.get $6 i32.lt_s if - local.get $5 + local.get $3 i32.const 3 i32.shl - local.get $2 + local.get $5 i32.add - local.tee $3 + local.tee $4 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $10 + local.get $7 local.get $0 - local.get $3 + local.get $4 i32.load call $~lib/array/Array#__set local.get $0 @@ -11902,42 +11903,44 @@ i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|02 end end - local.get $10 + local.get $7 local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $7 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $7 - local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $3 i32.store offset=8 + i32.const 0 + local.set $0 loop $for-loop|2 - local.get $10 + local.get $7 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if - local.get $10 - local.get $1 + local.get $7 + local.get $0 call $~lib/array/Array#__get - local.tee $2 + local.tee $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11946,27 +11949,27 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.set $3 - local.get $4 + local.set $1 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 - local.get $3 + local.get $1 + local.get $1 i32.const 16 i32.shr_u i32.xor @@ -11975,12 +11978,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 local.tee $5 i32.const 1 @@ -11988,8 +11991,8 @@ if (result i32) i32.const 0 else - local.get $2 - local.get $3 + local.get $4 + local.get $1 i32.load i32.eq end @@ -11997,14 +12000,14 @@ local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -12014,21 +12017,21 @@ call $~lib/builtins/abort unreachable end + local.get $3 + local.get $7 local.get $0 - local.get $10 - local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|2 end end - local.get $0 + local.get $3 i32.load offset=20 - local.get $4 + local.get $2 i32.load offset=20 i32.ne if @@ -12040,18 +12043,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|3 - local.get $1 + local.get $0 i32.const 50 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12091,7 +12093,7 @@ if local.get $1 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -12103,7 +12105,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -12123,12 +12125,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -12170,7 +12172,7 @@ if local.get $1 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -12182,7 +12184,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -12204,11 +12206,11 @@ local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -12221,18 +12223,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|4 - local.get $1 + local.get $0 i32.const 50 i32.lt_u if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12272,7 +12273,7 @@ if local.get $1 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -12284,7 +12285,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -12303,12 +12304,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#add - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -12350,7 +12351,7 @@ if local.get $1 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -12362,7 +12363,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -12382,12 +12383,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 local.get $0 call $~lib/set/Set#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -12429,7 +12430,7 @@ if local.get $1 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -12441,7 +12442,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $1 @@ -12463,11 +12464,11 @@ local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|4 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -12479,9 +12480,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/set/Set#clear - local.get $4 + local.get $2 i32.load offset=20 if i32.const 0 @@ -13152,8 +13153,8 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13162,7 +13163,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -13173,23 +13173,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $1 + local.get $2 i64.const 100 i64.lt_s if - local.get $2 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13199,11 +13199,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/set/Set#add local.get $2 + call $~lib/set/Set#add local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13214,14 +13214,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $2 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -13234,14 +13234,14 @@ unreachable end i64.const 50 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i64.const 100 i64.lt_s if - local.get $2 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13252,11 +13252,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/set/Set#add local.get $2 + call $~lib/set/Set#add local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13267,14 +13267,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|1 end end - local.get $2 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -13287,7 +13287,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13296,16 +13296,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i32.const 0 i32.store - local.get $2 + local.get $1 i32.load offset=8 - local.set $8 - local.get $2 + local.set $7 + local.get $1 i32.load offset=16 - local.set $3 - local.get $6 + local.set $4 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13314,28 +13314,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $8 i64.const 0 i64.store - local.get $9 + local.get $8 i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store offset=4 - local.get $10 + local.get $9 i32.const 0 i32.store offset=8 - local.get $10 + local.get $9 i32.const 0 i32.store offset=12 - local.get $3 + local.get $4 i32.const 134217727 i32.gt_u if @@ -13347,63 +13347,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 8 - local.get $3 + local.get $4 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store offset=4 + local.get $9 local.get $10 - local.get $11 i32.store - local.get $11 + local.get $10 if + local.get $9 local.get $10 - local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $9 local.get $10 - local.get $11 i32.store offset=4 - local.get $10 local.get $9 + local.get $8 i32.store offset=8 - local.get $10 - local.get $3 + local.get $9 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $10 + local.get $5 + local.get $9 i32.store loop $for-loop|02 local.get $3 - local.get $5 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $5 + local.get $3 i32.const 4 i32.shl - local.get $8 + local.get $7 i32.add - local.tee $6 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $10 + local.get $9 local.get $0 - local.get $6 + local.get $5 i64.load call $~lib/array/Array#__set local.get $0 @@ -13411,41 +13411,43 @@ i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|02 end end - local.get $10 + local.get $9 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $9 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $10 + local.get $6 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $3 i32.store offset=8 + i32.const 0 + local.set $0 loop $for-loop|2 - local.get $10 + local.get $9 i32.load offset=12 - local.get $4 + local.get $0 i32.gt_s if - local.get $2 - local.get $10 - local.get $4 + local.get $1 + local.get $9 + local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -13457,21 +13459,21 @@ call $~lib/builtins/abort unreachable end + local.get $3 + local.get $9 local.get $0 - local.get $10 - local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|2 end end - local.get $0 + local.get $3 i32.load offset=20 - local.get $2 + local.get $1 i32.load offset=20 i32.ne if @@ -13483,14 +13485,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i64.const 50 i64.lt_s if - local.get $2 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13501,11 +13503,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/set/Set#delete local.get $2 + call $~lib/set/Set#delete local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13515,14 +13517,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -13535,14 +13537,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i64.const 50 i64.lt_s if - local.get $2 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13552,11 +13554,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/set/Set#add local.get $2 + call $~lib/set/Set#add local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -13567,11 +13569,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/set/Set#delete local.get $2 + call $~lib/set/Set#delete local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -13581,14 +13583,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -13600,9 +13602,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 call $~lib/set/Set#clear - local.get $2 + local.get $1 i32.load offset=20 if i32.const 0 @@ -14197,8 +14199,8 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) @@ -14207,7 +14209,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -14218,23 +14219,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $1 + local.get $2 i64.const 100 i64.lt_u if - local.get $2 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -14244,11 +14245,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/set/Set#add local.get $2 + call $~lib/set/Set#add local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -14259,14 +14260,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|0 end end - local.get $2 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -14279,14 +14280,14 @@ unreachable end i64.const 50 - local.set $1 + local.set $2 loop $for-loop|1 - local.get $1 + local.get $2 i64.const 100 i64.lt_u if - local.get $2 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -14297,11 +14298,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/set/Set#add local.get $2 + call $~lib/set/Set#add local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -14312,14 +14313,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|1 end end - local.get $2 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -14332,7 +14333,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14341,16 +14342,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i32.const 0 i32.store - local.get $2 + local.get $1 i32.load offset=8 - local.set $8 - local.get $2 + local.set $7 + local.get $1 i32.load offset=16 - local.set $3 - local.get $6 + local.set $4 + local.get $5 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14359,28 +14360,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $8 i64.const 0 i64.store - local.get $9 + local.get $8 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store offset=4 - local.get $10 + local.get $9 i32.const 0 i32.store offset=8 - local.get $10 + local.get $9 i32.const 0 i32.store offset=12 - local.get $3 + local.get $4 i32.const 134217727 i32.gt_u if @@ -14392,63 +14393,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 8 - local.get $3 + local.get $4 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store offset=4 + local.get $9 local.get $10 - local.get $11 i32.store - local.get $11 + local.get $10 if + local.get $9 local.get $10 - local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $9 local.get $10 - local.get $11 i32.store offset=4 - local.get $10 local.get $9 + local.get $8 i32.store offset=8 - local.get $10 - local.get $3 + local.get $9 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $10 + local.get $5 + local.get $9 i32.store loop $for-loop|02 local.get $3 - local.get $5 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $5 + local.get $3 i32.const 4 i32.shl - local.get $8 + local.get $7 i32.add - local.tee $6 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $10 + local.get $9 local.get $0 - local.get $6 + local.get $5 i64.load call $~lib/array/Array#__set local.get $0 @@ -14456,41 +14457,43 @@ i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|02 end end - local.get $10 + local.get $9 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $9 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $10 + local.get $6 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $3 i32.store offset=8 + i32.const 0 + local.set $0 loop $for-loop|2 - local.get $10 + local.get $9 i32.load offset=12 - local.get $4 + local.get $0 i32.gt_s if - local.get $2 - local.get $10 - local.get $4 + local.get $1 + local.get $9 + local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -14502,21 +14505,21 @@ call $~lib/builtins/abort unreachable end + local.get $3 + local.get $9 local.get $0 - local.get $10 - local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|2 end end - local.get $0 + local.get $3 i32.load offset=20 - local.get $2 + local.get $1 i32.load offset=20 i32.ne if @@ -14528,14 +14531,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|3 - local.get $1 + local.get $2 i64.const 50 i64.lt_u if - local.get $2 local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -14546,11 +14549,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/set/Set#delete local.get $2 + call $~lib/set/Set#delete local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -14560,14 +14563,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -14580,14 +14583,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $2 loop $for-loop|4 - local.get $1 + local.get $2 i64.const 50 i64.lt_u if - local.get $2 local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -14597,11 +14600,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/set/Set#add local.get $2 + call $~lib/set/Set#add local.get $1 + local.get $2 call $~lib/set/Set#has i32.eqz if @@ -14612,11 +14615,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 - call $~lib/set/Set#delete local.get $2 + call $~lib/set/Set#delete local.get $1 + local.get $2 call $~lib/set/Set#has if i32.const 0 @@ -14626,14 +14629,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.const 1 i64.add - local.set $1 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -14645,9 +14648,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 call $~lib/set/Set#clear - local.get $2 + local.get $1 i32.load offset=20 if i32.const 0 @@ -14748,7 +14751,6 @@ local.tee $8 f32.store local.get $2 - local.get $1 local.get $8 i32.reinterpret_f32 i32.const -1028477379 @@ -14760,24 +14762,25 @@ i32.const 668265263 i32.mul local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $9 i32.xor + local.get $1 i32.and i32.const 2 i32.shl @@ -15520,7 +15523,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $8 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -15534,7 +15537,7 @@ i32.store local.get $11 i32.load offset=8 - local.set $8 + local.set $5 local.get $11 i32.load offset=16 local.set $7 @@ -15554,18 +15557,18 @@ i32.const 16 i32.const 20 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.store - local.get $6 + local.get $4 i32.const 0 i32.store offset=4 - local.get $6 + local.get $4 i32.const 0 i32.store offset=8 - local.get $6 + local.get $4 i32.const 0 i32.store offset=12 local.get $7 @@ -15591,24 +15594,24 @@ local.tee $0 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 + local.get $4 local.get $6 - local.get $5 i32.store - local.get $5 + local.get $6 if + local.get $4 local.get $6 - local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end + local.get $4 local.get $6 - local.get $5 i32.store offset=4 - local.get $6 + local.get $4 local.get $0 i32.store offset=8 - local.get $6 + local.get $4 local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -15616,33 +15619,33 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.get $6 + local.get $4 i32.store loop $for-loop|02 local.get $7 - local.get $10 + local.get $9 i32.gt_s if - local.get $10 + local.get $9 i32.const 3 i32.shl - local.get $8 + local.get $5 i32.add - local.tee $3 + local.tee $0 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $0 + f32.load + local.set $2 local.get $1 local.tee $0 i32.const 1 i32.add local.set $1 - local.get $3 - f32.load - local.set $2 - local.get $6 + local.get $4 i32.load offset=12 local.get $0 i32.le_u @@ -15658,7 +15661,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 local.get $0 i32.const 1 i32.add @@ -15666,11 +15669,11 @@ i32.const 2 i32.const 1 call $~lib/array/ensureCapacity - local.get $6 + local.get $4 local.get $3 i32.store offset=12 end - local.get $6 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -15679,40 +15682,40 @@ local.get $2 f32.store end - local.get $10 + local.get $9 i32.const 1 i32.add - local.set $10 + local.set $9 br $for-loop|02 end end - local.get $6 + local.get $4 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 + local.get $4 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $8 local.get $4 - local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $3 i32.store offset=8 loop $for-loop|2 - local.get $6 + local.get $4 i32.load offset=12 - local.get $9 + local.get $10 i32.gt_s if - local.get $6 - local.get $9 + local.get $4 + local.get $10 call $~lib/array/Array#__get local.tee $2 i32.reinterpret_f32 @@ -15793,14 +15796,14 @@ unreachable end local.get $3 - local.get $6 - local.get $9 + local.get $4 + local.get $10 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $9 + local.get $10 i32.const 1 i32.add - local.set $9 + local.set $10 br $for-loop|2 end end @@ -16870,8 +16873,8 @@ (func $std/set/testNumeric (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f64) + (local $2 f64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -16898,15 +16901,15 @@ i32.store offset=8 local.get $1 call $~lib/set/Set#constructor - local.tee $2 + local.tee $8 i32.store loop $for-loop|0 - local.get $3 + local.get $2 f64.const 100 f64.lt if + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -16916,11 +16919,11 @@ call $~lib/builtins/abort unreachable end + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#add + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#has i32.eqz if @@ -16931,14 +16934,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f64.const 1 f64.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $2 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -16951,14 +16954,14 @@ unreachable end f64.const 50 - local.set $3 + local.set $2 loop $for-loop|1 - local.get $3 + local.get $2 f64.const 100 f64.lt if + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#has i32.eqz if @@ -16969,11 +16972,11 @@ call $~lib/builtins/abort unreachable end + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#add + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#has i32.eqz if @@ -16984,14 +16987,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f64.const 1 f64.add - local.set $3 + local.set $2 br $for-loop|1 end end - local.get $2 + local.get $8 i32.load offset=20 i32.const 100 i32.ne @@ -17004,7 +17007,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17013,16 +17016,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $8 i32.load offset=8 - local.set $8 - local.get $2 + local.set $3 + local.get $8 i32.load offset=16 - local.set $4 - local.get $9 + local.set $6 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17031,28 +17034,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $9 i64.const 0 i64.store - local.get $1 + local.get $9 i32.const 16 i32.const 22 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store - local.get $10 + local.get $9 i32.const 0 i32.store offset=4 - local.get $10 + local.get $9 i32.const 0 i32.store offset=8 - local.get $10 + local.get $9 i32.const 0 i32.store offset=12 - local.get $4 + local.get $6 i32.const 134217727 i32.gt_u if @@ -17064,69 +17067,69 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 8 - local.get $4 + local.get $6 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $1 + local.tee $10 i32.const 0 call $~lib/rt/itcms/__new local.tee $11 i32.store offset=4 - local.get $10 + local.get $9 local.get $11 i32.store local.get $11 if - local.get $10 + local.get $9 local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 + local.get $9 local.get $11 i32.store offset=4 + local.get $9 local.get $10 - local.get $1 i32.store offset=8 - local.get $10 - local.get $4 + local.get $9 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $9 - local.get $10 i32.store loop $for-loop|02 - local.get $4 + local.get $5 local.get $6 - i32.gt_s + i32.lt_s if - local.get $6 + local.get $5 i32.const 4 i32.shl - local.get $8 + local.get $3 i32.add - local.tee $9 + local.tee $1 i32.load offset=8 i32.const 1 i32.and i32.eqz if + local.get $1 + f64.load + local.set $2 local.get $0 local.tee $1 i32.const 1 i32.add local.set $0 local.get $9 - f64.load - local.set $3 - local.get $10 i32.load offset=12 local.get $1 i32.le_u @@ -17142,62 +17145,62 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $9 local.get $1 i32.const 1 i32.add - local.tee $9 + local.tee $10 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $10 local.get $9 + local.get $10 i32.store offset=12 end - local.get $10 + local.get $9 i32.load offset=4 local.get $1 i32.const 3 i32.shl i32.add - local.get $3 + local.get $2 f64.store end - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|02 end end - local.get $10 + local.get $9 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + local.get $9 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $10 + local.get $4 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor local.tee $0 i32.store offset=8 loop $for-loop|2 - local.get $10 + local.get $9 i32.load offset=12 - local.get $5 + local.get $7 i32.gt_s if - local.get $2 - local.get $10 - local.get $5 + local.get $8 + local.get $9 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -17210,20 +17213,20 @@ unreachable end local.get $0 - local.get $10 - local.get $5 + local.get $9 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|2 end end local.get $0 i32.load offset=20 - local.get $2 + local.get $8 i32.load offset=20 i32.ne if @@ -17235,14 +17238,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $2 loop $for-loop|3 - local.get $3 + local.get $2 f64.const 50 f64.lt if + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#has i32.eqz if @@ -17253,11 +17256,11 @@ call $~lib/builtins/abort unreachable end + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#delete + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -17267,14 +17270,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f64.const 1 f64.add - local.set $3 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $8 i32.load offset=20 i32.const 50 i32.ne @@ -17287,14 +17290,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $2 loop $for-loop|4 - local.get $3 + local.get $2 f64.const 50 f64.lt if + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -17304,11 +17307,11 @@ call $~lib/builtins/abort unreachable end + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#add + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#has i32.eqz if @@ -17319,11 +17322,11 @@ call $~lib/builtins/abort unreachable end + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#delete + local.get $8 local.get $2 - local.get $3 call $~lib/set/Set#has if i32.const 0 @@ -17333,14 +17336,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f64.const 1 f64.add - local.set $3 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $8 i32.load offset=20 i32.const 50 i32.ne @@ -17352,9 +17355,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $8 call $~lib/set/Set#clear - local.get $2 + local.get $8 i32.load offset=20 if i32.const 0 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 02c88189dd..929f1279c5 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -239,8 +239,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -864,43 +862,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18396 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -911,221 +982,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18396 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18396 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18396 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18396 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1904 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1904 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index 2ff50517a6..d9f1093a07 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -374,8 +374,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -1049,43 +1047,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 20252 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1096,177 +1167,102 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 20252 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1408 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20252 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1408 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - i32.const 20252 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3997,22 +3993,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) + (local $9 f64) + (local $10 f32) (local $11 i32) (local $12 i32) - (local $13 f32) - (local $14 f64) - (local $15 i32) - (local $16 i32) - (local $17 i32) - (local $18 i32) - (local $19 i32) - (local $20 i32) - (local $21 i32) - (local $22 i32) - (local $23 i32) - (local $24 i32) + (local $13 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub @@ -4023,19 +4009,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $21 + local.tee $2 i64.const 0 i64.store - local.get $21 + local.get $2 i64.const 0 i64.store offset=8 - local.get $21 + local.get $2 i64.const 0 i64.store offset=16 - local.get $21 + local.get $2 i64.const 0 i64.store offset=24 - local.get $21 + local.get $2 i32.const 1056 i32.store i32.const 1056 @@ -4192,17 +4178,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $21 + local.tee $2 i32.const 1312 i32.const 12 call $~lib/memory/memory.copy - local.get $21 + local.get $2 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $21 + local.tee $2 i32.store - local.get $21 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -4217,9 +4203,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $21 + local.tee $2 i32.store - local.get $21 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -4234,9 +4220,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $21 + local.tee $2 i32.store - local.get $21 + local.get $2 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -4251,9 +4237,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $21 + local.tee $2 i32.store - local.get $21 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4271,16 +4257,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $21 + local.tee $2 i32.store - local.get $21 + local.get $2 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $21 + local.tee $2 i32.store - local.get $21 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -4296,17 +4282,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $21 + local.tee $2 i32.const 1312 i32.const 12 call $~lib/memory/memory.copy - local.get $21 + local.get $2 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $21 + local.tee $2 i32.store - local.get $21 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -4323,24 +4309,24 @@ i32.const 8 i32.const 5 call $~lib/rt/itcms/__new - local.tee $21 + local.tee $2 i32.store offset=4 - local.get $21 + local.get $2 i32.const 0 call $std/staticarray/Ref#constructor call $~lib/staticarray/StaticArray#__uset - local.get $21 + local.get $2 i32.const 1 call $std/staticarray/Ref#constructor call $~lib/staticarray/StaticArray#__uset - local.get $21 + local.get $2 global.set $std/staticarray/arr4 i32.const 0 global.set $std/staticarray/arr3 i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.tee $21 + local.tee $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4349,23 +4335,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $22 + local.tee $2 i32.const 0 i32.store - local.get $22 + local.get $2 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $22 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $21 - local.get $22 + local.get $3 + local.get $2 i32.store offset=4 - local.get $22 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4382,17 +4368,17 @@ unreachable end loop $for-loop|0 - local.get $22 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $2 + local.get $0 i32.gt_s if - local.get $22 local.get $2 + local.get $0 call $~lib/staticarray/StaticArray#__get if i32.const 0 @@ -4402,10 +4388,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end @@ -4414,16 +4400,16 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.tee $21 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $3 call $~lib/staticarray/StaticArray.fromArray - local.tee $22 + local.tee $2 i32.store offset=4 - local.get $21 + local.get $3 i32.load offset=12 - local.get $22 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4439,18 +4425,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $0 loop $for-loop|1 - local.get $21 + local.get $3 i32.load offset=12 - local.get $2 + local.get $0 i32.gt_s if - local.get $22 local.get $2 + local.get $0 call $~lib/staticarray/StaticArray#__get - local.get $21 - local.get $2 + local.get $3 + local.get $0 call $~lib/array/Array#__get i32.ne if @@ -4461,10 +4447,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|1 end end @@ -4473,15 +4459,15 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $21 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $0 i32.store - local.get $21 + local.get $0 call $~lib/staticarray/StaticArray.fromArray - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4499,29 +4485,29 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $21 + local.tee $3 i32.const 1856 i32.const 8 call $~lib/memory/memory.copy - local.get $21 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 3 call $~lib/rt/itcms/__new - local.tee $22 + local.tee $0 i32.const 1888 i32.const 4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $22 + local.get $0 i32.store offset=12 - local.get $21 - local.get $22 + local.get $3 + local.get $0 call $~lib/staticarray/StaticArray.concat - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4541,25 +4527,25 @@ i32.const 0 i32.const 3 call $~lib/rt/itcms/__new - local.tee $22 + local.tee $0 i32.const 1920 i32.const 0 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $22 + local.get $0 i32.store offset=12 - local.get $21 - local.get $22 + local.get $3 + local.get $0 call $~lib/staticarray/StaticArray.concat - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $21 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -4578,26 +4564,26 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $21 + local.tee $4 i32.const 2128 i32.const 20 call $~lib/memory/memory.copy - local.get $21 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $4 i32.const 0 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $21 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -4613,31 +4599,31 @@ unreachable end loop $for-loop|2 - local.get $21 + local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $9 + local.get $1 i32.gt_s if - local.get $21 - local.get $9 + local.get $4 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $22 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store local.get $2 - local.get $9 + i32.store + local.get $3 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $23 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $23 + local.get $0 i32.store offset=12 - local.get $22 - local.get $23 + local.get $2 + local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -4648,15 +4634,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $4 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray.slice<~lib/string/String> @@ -4681,15 +4667,15 @@ local.get $2 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $22 - local.get $9 + local.tee $0 + local.get $1 i32.store - local.get $22 + local.get $0 i32.const 1984 i32.store offset=12 - local.get $9 + local.get $1 i32.const 1984 call $~lib/string/String.__eq i32.eqz @@ -4704,15 +4690,15 @@ local.get $2 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 + local.tee $0 + local.get $1 i32.store - local.get $9 + local.get $0 i32.const 2016 i32.store offset=12 - local.get $2 + local.get $1 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4725,13 +4711,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $4 i32.const 1 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $21 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -4739,7 +4725,7 @@ i32.shr_u i32.const 1 i32.sub - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4755,19 +4741,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $4 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $21 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -4783,13 +4769,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $4 i32.const 100 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4804,13 +4790,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $4 i32.const -1 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4826,18 +4812,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 + local.tee $0 + local.get $1 i32.store - local.get $9 + local.get $0 i32.const 2080 i32.store offset=12 - local.get $2 + local.get $1 i32.const 2080 call $~lib/string/String.__eq i32.eqz @@ -4850,13 +4836,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $4 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4871,13 +4857,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $4 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4893,18 +4879,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $2 + local.tee $0 + local.get $1 i32.store - local.get $9 + local.get $0 i32.const 2016 i32.store offset=12 - local.get $2 + local.get $1 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4920,29 +4906,29 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $2 i32.const 2304 i32.const 20 call $~lib/memory/memory.copy - local.get $9 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 9 i32.const 2352 call $~lib/rt/__newArray - local.set $21 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $0 i32.store offset=12 - local.get $9 - local.get $21 + local.get $2 + local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $2 + local.tee $0 i32.store offset=16 - local.get $2 + local.get $0 i32.load offset=12 - local.get $9 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4962,18 +4948,18 @@ i32.const 9 i32.const 2416 call $~lib/rt/__newArray - local.set $21 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $21 + local.get $0 i32.store offset=12 - local.get $9 - local.get $21 + local.get $2 + local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $2 + local.tee $0 i32.store offset=16 - local.get $2 + local.get $0 i32.load offset=12 - local.get $9 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4994,16 +4980,16 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $0 i32.const 2448 i32.const 20 call $~lib/memory/memory.copy - local.get $9 + local.get $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 1984 i32.store offset=12 - local.get $9 + local.get $0 i32.const 1984 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5020,7 +5006,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2384 i32.store offset=12 - local.get $9 + local.get $0 i32.const 2384 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5035,7 +5021,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $9 + local.get $0 i32.const 2080 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5050,7 +5036,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $9 + local.get $0 i32.const 2080 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5076,41 +5062,43 @@ local.get $2 i32.store i32.const 0 + local.set $0 + i32.const 0 local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 3 i32.shr_u - local.tee $9 + local.tee $1 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|0 - local.get $5 - local.get $9 + local.get $0 + local.get $1 i32.lt_s if i32.const 1 - local.get $5 + local.get $0 i32.const 3 i32.shl local.get $2 i32.add f64.load - local.tee $14 + local.tee $9 f64.const nan:0x8000000000000 f64.eq - local.get $14 - local.get $14 + local.get $9 + local.get $9 f64.ne i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $5 + local.get $0 i32.const 1 i32.add - local.set $5 + local.set $0 br $while-continue|0 end end @@ -5137,41 +5125,43 @@ local.get $2 i32.store i32.const 0 + local.set $0 + i32.const 0 local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $5 + local.tee $1 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|09 - local.get $5 - local.get $10 - i32.gt_s + local.get $0 + local.get $1 + i32.lt_s if i32.const 1 - local.get $10 + local.get $0 i32.const 2 i32.shl local.get $2 i32.add f32.load - local.tee $13 + local.tee $10 f32.const nan:0x400000 f32.eq - local.get $13 - local.get $13 + local.get $10 + local.get $10 f32.ne i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $10 + local.get $0 i32.const 1 i32.add - local.set $10 + local.set $0 br $while-continue|09 end end @@ -5190,40 +5180,42 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.const 2560 i32.const 12 call $~lib/memory/memory.copy - local.get $5 + local.get $3 i32.store offset=16 + i32.const 0 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $5 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $9 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf loop $while-continue|012 local.get $0 - local.get $9 + local.get $2 i32.lt_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $2 + local.get $1 i32.const 1 i32.add local.set $0 @@ -5231,9 +5223,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1216 @@ -5242,10 +5234,12 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + i32.const 0 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf13 - local.get $5 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -5255,31 +5249,31 @@ i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf13 loop $while-continue|028 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add i32.load i32.const 7 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|028 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -5291,11 +5285,11 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf29 - local.get $5 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -5309,31 +5303,31 @@ select br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf29 loop $while-continue|033 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add i32.load i32.const 9 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf29 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 2 i32.ne if @@ -5345,52 +5339,56 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#indexOf34 - local.get $5 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 - i32.eqz + local.tee $1 + i32.const 0 + i32.lt_u + i32.const 1 + local.get $1 + select br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf34 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 + local.set $0 loop $while-continue|037 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf34 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -5402,56 +5400,56 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#indexOf38 - local.get $5 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.const -3 i32.le_s i32.const 1 - local.get $0 + local.get $1 select br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf38 - local.get $0 + local.get $1 i32.const 3 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 + local.set $0 loop $while-continue|041 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf38 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|041 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1216 @@ -5464,75 +5462,74 @@ i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $2 i32.const 2592 i32.const 16 call $~lib/memory/memory.copy - local.get $5 + local.get $2 i32.store offset=16 i32.const 1 global.set $~argumentsLength - local.get $5 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $1 + local.set $3 i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf - local.get $5 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf - local.get $1 - local.get $2 + local.get $0 + local.get $3 i32.add - local.get $2 + local.get $0 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $2 - i32.ge_s + local.get $3 + local.get $0 + local.get $3 + i32.le_s select - local.get $1 + local.get $3 i32.const 0 i32.lt_s select - local.set $2 + local.set $1 loop $while-continue|01 - local.get $2 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.tee $0 + local.get $1 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $1 br $while-continue|01 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -5545,62 +5542,61 @@ end i32.const 1 global.set $~argumentsLength - local.get $5 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 - local.set $2 - i32.const -1 + local.tee $3 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 - local.get $1 + local.get $3 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 - local.get $1 - local.get $2 + local.get $0 + local.get $3 i32.add - local.get $1 + local.get $3 i32.const 1 i32.sub - local.get $2 - local.get $1 - local.get $2 - i32.le_s + local.get $0 + local.get $0 + local.get $3 + i32.ge_s select - local.get $2 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 + local.set $1 loop $while-continue|07 - local.get $2 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.tee $0 + local.get $1 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add i32.load i32.const 7 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $1 br $while-continue|07 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -5614,7 +5610,7 @@ i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf8 - local.get $5 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -5631,17 +5627,16 @@ i32.const 3 i32.le_u select - local.set $0 + local.set $1 loop $while-continue|044 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add i32.load i32.const 2 @@ -5650,7 +5645,7 @@ local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|044 end end @@ -5671,7 +5666,7 @@ i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 - local.get $5 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -5688,17 +5683,16 @@ i32.const 2 i32.le_u select - local.set $0 + local.set $1 loop $while-continue|048 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add i32.load i32.const 2 @@ -5707,7 +5701,7 @@ local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|048 end end @@ -5726,7 +5720,7 @@ i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 - local.get $5 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -5747,7 +5741,7 @@ local.get $1 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add i32.load i32.const 2 @@ -5773,46 +5767,46 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 - local.get $5 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $while-continue|056 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|056 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -5827,17 +5821,17 @@ i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 2736 i32.const 12 call $~lib/memory/memory.copy - local.get $1 + local.get $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 2800 i32.store offset=20 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -5867,9 +5861,9 @@ global.get $~lib/memory/__stack_pointer i32.const 2768 i32.store offset=20 - local.get $1 - local.get $1 - i32.const 20 + local.get $2 + local.get $2 + i32.const 20 i32.sub i32.load offset=16 i32.const 2 @@ -5898,8 +5892,8 @@ global.get $~lib/memory/__stack_pointer i32.const 2928 i32.store offset=20 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -5929,8 +5923,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3008 i32.store offset=20 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -5960,8 +5954,8 @@ global.get $~lib/memory/__stack_pointer i32.const 2800 i32.store offset=20 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -5969,9 +5963,9 @@ i32.shr_u i32.const 2800 call $~lib/util/string/joinStringArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5982,14 +5976,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 2800 i32.store - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -5997,16 +5991,16 @@ i32.shr_u i32.const 2800 call $~lib/util/string/joinStringArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 local.get $0 + i32.store offset=12 local.get $1 + local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -6021,34 +6015,34 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 3104 i32.const 8 call $~lib/memory/memory.copy - local.get $1 + local.get $2 i32.store offset=16 i32.const 1 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 1 i32.gt_u select local.set $0 loop $for-loop|060 local.get $0 - local.get $2 + local.get $1 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.const 1 i32.store @@ -6059,7 +6053,7 @@ br $for-loop|060 end end - local.get $1 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -6070,7 +6064,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -6087,13 +6081,13 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $5 i32.const 3136 i32.const 12 call $~lib/memory/memory.copy - local.get $1 + local.get $5 i32.store offset=16 - local.get $1 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -6103,50 +6097,52 @@ i32.const 1 i32.gt_u if + i32.const 0 + local.set $1 local.get $0 i32.const 1 i32.shr_u - local.set $2 + local.set $4 local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $3 loop $while-continue|064 - local.get $2 - local.get $8 - i32.gt_u + local.get $1 + local.get $4 + i32.lt_u if - local.get $8 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $5 i32.add - local.tee $5 + local.tee $0 i32.load - local.set $9 - local.get $5 + local.set $2 local.get $0 - local.get $8 + local.get $3 + local.get $1 i32.sub i32.const 2 i32.shl - local.get $1 + local.get $5 i32.add - local.tee $5 + local.tee $0 i32.load i32.store - local.get $5 - local.get $9 + local.get $0 + local.get $2 i32.store - local.get $8 + local.get $1 i32.const 1 i32.add - local.set $8 + local.set $1 br $while-continue|064 end end end - local.get $1 + local.get $5 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -6159,7 +6155,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -6172,7 +6168,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -6189,57 +6185,62 @@ i32.const 20 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.const 3168 i32.const 20 call $~lib/memory/memory.copy - local.get $1 + local.get $4 i32.store offset=16 - local.get $1 + local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 - local.set $2 - local.get $1 + local.tee $3 + local.set $0 + i32.const 0 + local.tee $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.get $4 i32.const 3 - local.get $0 - local.get $0 + local.get $3 + local.get $3 i32.const 3 - i32.gt_u + i32.gt_s select - local.tee $5 + local.tee $2 i32.const 2 i32.shl - local.get $1 i32.add - local.get $2 + local.get $0 i32.const 0 i32.lt_s if (result i32) local.get $0 - local.get $2 + local.get $3 i32.add - local.tee $2 + local.tee $0 i32.const 0 - local.get $2 + local.get $0 i32.const 0 i32.gt_s select else - local.get $2 local.get $0 + local.get $3 local.get $0 - local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select end - local.get $5 + local.get $2 i32.sub local.tee $2 - local.get $0 + local.get $3 local.tee $0 local.get $0 local.get $2 @@ -6248,7 +6249,7 @@ i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $4 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -6261,7 +6262,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -6274,7 +6275,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -6287,7 +6288,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -6300,7 +6301,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 4 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -6317,17 +6318,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.const 3216 i32.const 12 call $~lib/memory/memory.copy - local.get $8 + local.get $7 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $6 i32.const 3248 i32.store offset=12 - local.get $0 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6336,54 +6337,54 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 - local.get $8 + local.get $0 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $5 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.load offset=4 - local.set $5 + local.set $3 loop $for-loop|042 local.get $1 - local.get $7 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $9 - local.get $8 + local.tee $2 + local.get $7 i32.add i32.load - local.set $10 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $9 + local.get $2 + local.get $3 i32.add - local.get $10 + local.get $0 + local.get $1 local.get $7 - local.get $8 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $7 + local.get $1 i32.const 1 i32.add - local.set $7 + local.set $1 br $for-loop|042 end end @@ -6391,10 +6392,10 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $2 + local.get $6 + local.get $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -6407,7 +6408,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -6420,7 +6421,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.const 2 call $~lib/array/Array#__get i32.const 4 @@ -6436,35 +6437,37 @@ global.get $~lib/memory/__stack_pointer i32.const 3280 i32.store offset=12 - local.get $8 + i32.const 0 + local.set $1 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $2 loop $for-loop|070 - local.get $0 - local.get $6 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if - local.get $6 + local.get $1 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $8 + local.get $1 + local.get $7 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 + local.set $1 br $for-loop|070 end end @@ -6480,10 +6483,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $11 i32.const 3312 i32.store offset=12 - local.get $7 + local.get $11 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6500,51 +6503,51 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $3 i32.store - local.get $8 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $9 + local.set $13 loop $for-loop|045 - local.get $9 - local.get $20 - i32.gt_s + local.get $8 + local.get $13 + i32.lt_s if - local.get $20 + local.get $8 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load - local.set $10 + local.set $12 i32.const 3 global.set $~argumentsLength - local.get $10 - local.get $20 + local.get $12 local.get $8 + local.get $7 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $0 + local.get $3 i32.load offset=12 - local.tee $21 + local.tee $14 i32.const 1 i32.add - local.tee $22 - local.get $0 - local.tee $1 - i32.load offset=8 + local.tee $6 + local.get $3 local.tee $2 + i32.load offset=8 + local.tee $0 i32.const 2 i32.shr_u i32.gt_u if - local.get $22 + local.get $6 i32.const 268435455 i32.gt_u if @@ -6556,37 +6559,36 @@ unreachable end block $__inlined_func$~lib/rt/itcms/__renew - local.get $2 + local.get $0 i32.const 1 i32.shl - local.tee $2 + local.tee $0 i32.const 1073741820 - local.get $2 + local.get $0 i32.const 1073741820 i32.lt_u select - local.tee $2 - local.get $22 + local.tee $1 + local.get $6 i32.const 8 - local.get $22 + local.get $6 i32.const 8 i32.gt_u select i32.const 2 i32.shl + local.tee $0 + local.get $0 + local.get $1 + i32.lt_u + select local.tee $5 local.get $2 - local.get $5 - i32.gt_u - select - local.tee $6 - local.get $1 i32.load - local.tee $23 - local.tee $5 + local.tee $1 i32.const 20 i32.sub - local.tee $24 + local.tee $4 i32.load i32.const -4 i32.and @@ -6594,67 +6596,67 @@ i32.sub i32.le_u if - local.get $24 - local.get $6 - i32.store offset=16 + local.get $4 local.get $5 - local.set $2 + i32.store offset=16 + local.get $1 + local.set $0 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $6 - local.get $24 + local.get $5 + local.get $4 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 + local.get $1 local.get $5 - local.get $6 - local.get $24 + local.get $4 i32.load offset=16 - local.tee $5 + local.tee $4 + local.get $4 local.get $5 - local.get $6 i32.gt_u select call $~lib/memory/memory.copy end - local.get $2 - local.get $23 + local.get $0 + local.get $1 i32.ne if - local.get $1 local.get $2 + local.get $0 i32.store - local.get $1 local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 if - local.get $1 local.get $2 + local.get $0 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end end - local.get $1 - local.get $6 + local.get $2 + local.get $5 i32.store offset=8 end - local.get $1 + local.get $2 i32.load offset=4 - local.get $21 + local.get $14 i32.const 2 i32.shl i32.add - local.get $10 + local.get $12 i32.store - local.get $1 - local.get $22 + local.get $2 + local.get $6 i32.store offset=12 end - local.get $20 + local.get $8 i32.const 1 i32.add - local.set $20 + local.set $8 br $for-loop|045 end end @@ -6662,10 +6664,10 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $0 + local.get $11 + local.get $3 i32.store offset=24 - local.get $0 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -6677,7 +6679,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -6690,7 +6692,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -6706,43 +6708,47 @@ global.get $~lib/memory/__stack_pointer i32.const 3344 i32.store offset=12 - local.get $8 + i32.const 0 + local.set $1 + i32.const 0 + local.set $0 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $3 loop $for-loop|076 local.get $0 - local.get $19 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $19 + local.get $0 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load - local.set $1 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $12 local.get $1 - local.get $19 - local.get $8 + local.get $2 + local.get $0 + local.get $7 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 - local.get $19 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $19 + local.set $0 br $for-loop|076 end end - local.get $12 + local.get $1 i32.const 6 i32.ne if @@ -6756,7 +6762,9 @@ global.get $~lib/memory/__stack_pointer i32.const 3376 i32.store offset=12 - local.get $8 + i32.const 0 + local.set $0 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -6764,37 +6772,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|080 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load - local.set $1 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $11 - local.get $1 local.get $0 - local.get $8 + local.get $2 + local.get $1 + local.get $7 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $11 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|080 end end - local.get $11 + local.get $0 i32.const 6 i32.ne if @@ -6809,40 +6817,42 @@ global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=12 - local.get $8 + i32.const 0 + local.set $1 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $2 loop $for-loop|084 - local.get $0 - local.get $18 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if - local.get $18 + local.get $1 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $0 local.get $1 - local.get $18 - local.get $8 + local.get $7 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#some drop - local.get $18 + local.get $1 i32.const 1 i32.add - local.set $18 + local.set $1 br $for-loop|084 end end @@ -6861,40 +6871,42 @@ global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store offset=12 - local.get $8 + i32.const 0 + local.set $1 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $2 loop $for-loop|089 - local.get $0 - local.get $17 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if - local.get $17 + local.get $1 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $0 local.get $1 - local.get $17 - local.get $8 + local.get $7 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#some86 drop - local.get $17 + local.get $1 i32.const 1 i32.add - local.set $17 + local.set $1 br $for-loop|089 end end @@ -6912,41 +6924,43 @@ global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=12 - local.get $8 + i32.const 0 + local.set $1 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $2 loop $for-loop|093 - local.get $0 - local.get $16 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if - local.get $16 + local.get $1 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $0 local.get $1 - local.get $16 - local.get $8 + local.get $7 i32.const 3472 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#every drop - local.get $16 + local.get $1 i32.const 1 i32.add - local.set $16 + local.set $1 br $for-loop|093 end end @@ -6965,41 +6979,43 @@ global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store offset=12 - local.get $8 + i32.const 0 + local.set $1 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $2 loop $for-loop|098 - local.get $0 - local.get $15 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if - local.get $15 + local.get $1 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $0 local.get $1 - local.get $15 - local.get $8 + local.get $7 i32.const 3504 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#every95 drop - local.get $15 + local.get $1 i32.const 1 i32.add - local.set $15 + local.set $1 br $for-loop|098 end end @@ -7016,30 +7032,31 @@ global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=12 - local.get $8 + i32.const 0 + local.set $1 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $2 block $__inlined_func$~lib/staticarray/StaticArray#findIndex loop $for-loop|0102 - local.get $0 - local.get $4 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if - local.get $4 + local.get $1 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $4 - local.tee $1 - local.get $8 + local.get $1 + local.get $7 i32.const 3536 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -7047,7 +7064,7 @@ local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0102 end end @@ -7068,30 +7085,31 @@ global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=12 - local.get $8 + i32.const 0 + local.set $1 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 + local.set $2 block $__inlined_func$~lib/staticarray/StaticArray#findIndex104 loop $for-loop|0107 - local.get $0 - local.get $3 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if - local.get $3 + local.get $1 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $3 - local.tee $1 - local.get $8 + local.get $1 + local.get $7 i32.const 3568 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -7099,7 +7117,7 @@ local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|0107 end end @@ -7120,7 +7138,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store offset=12 - local.get $8 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -7128,38 +7146,38 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex loop $for-loop|0111 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $8 + local.get $0 + local.get $7 i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0111 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -7173,7 +7191,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store offset=12 - local.get $8 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -7181,38 +7199,38 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex113 loop $for-loop|0116 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $8 + local.get $0 + local.get $7 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex113 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|0116 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -7850,15 +7868,15 @@ i32.shl local.set $5 loop $for-loop|0 - local.get $3 + local.get $2 local.get $5 i32.lt_u if - local.get $3 + local.get $2 local.get $4 i32.add local.get $0 - local.get $3 + local.get $2 i32.add i32.load local.tee $8 @@ -7870,10 +7888,10 @@ i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $2 i32.const 4 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -7887,17 +7905,17 @@ local.get $6 i32.const 2 i32.shl - local.set $3 + local.set $2 loop $for-loop|1 local.get $2 local.get $3 - i32.lt_u + i32.gt_u if local.get $0 - local.get $2 + local.get $3 i32.add local.get $1 - local.get $2 + local.get $3 i32.add i32.load local.tee $4 @@ -7909,10 +7927,10 @@ i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $3 i32.const 4 i32.add - local.set $2 + local.set $3 br $for-loop|1 end end @@ -7944,16 +7962,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i64.const 0 i64.store - local.get $6 + local.get $5 i32.const 0 i32.store offset=8 local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $5 i32.const 0 i32.lt_s if @@ -7964,7 +7982,7 @@ i32.const 2768 return end - local.get $6 + local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -7985,21 +8003,21 @@ end loop $for-loop|0 local.get $1 - local.get $5 + local.get $4 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $0 i32.add i32.load - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 + local.get $6 if - local.get $7 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -8009,40 +8027,42 @@ i32.add local.set $3 end - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|0 end end + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 + local.get $5 local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 + local.tee $3 i32.mul - local.get $3 i32.add i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $6 i32.store offset=8 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 + local.get $4 local.get $5 - local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $0 @@ -8052,10 +8072,10 @@ i32.store offset=4 local.get $7 if - local.get $4 + local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $6 i32.add local.get $7 local.get $7 @@ -8068,37 +8088,37 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $1 local.get $7 i32.add - local.set $4 + local.set $1 end - local.get $1 + local.get $3 if - local.get $4 + local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $6 i32.add local.get $2 - local.get $1 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $4 + local.get $3 i32.add - local.set $4 + local.set $1 end - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $0 @@ -8108,10 +8128,10 @@ i32.store offset=4 local.get $0 if - local.get $4 + local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $6 i32.add local.get $0 local.get $0 @@ -8128,7 +8148,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $6 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) global.get $~lib/rt/itcms/white diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 4e7dce3c6a..12b72f8af8 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -1127,43 +1127,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 37476 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1174,221 +1247,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 37476 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 37476 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 37476 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 37476 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1424 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1424 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3583,7 +3581,6 @@ i32.store block $__inlined_func$~lib/string/String#concat local.get $0 - local.tee $2 i32.const 20 i32.sub i32.load offset=16 @@ -3602,7 +3599,7 @@ i32.shl local.tee $4 i32.add - local.tee $0 + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3610,20 +3607,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1056 - local.set $0 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 local.get $2 + local.get $0 local.get $3 call $~lib/memory/memory.copy - local.get $0 + local.get $2 local.get $3 i32.add local.get $1 @@ -3634,7 +3631,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $0 + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -4022,16 +4019,15 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.tee $6 i64.const 0 i64.store - local.get $6 + local.get $1 i64.const 0 i64.store offset=8 - local.get $6 + local.get $1 i64.const 0 i64.store offset=16 - local.get $6 + local.get $1 i32.const 0 i32.store offset=24 memory.size @@ -6609,7 +6605,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6634,7 +6629,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $8 + local.tee $7 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -6645,42 +6640,42 @@ return end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.const 2 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store loop $for-loop|0 - local.get $3 - local.get $8 + local.get $2 + local.get $7 i32.lt_u if - local.get $3 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.load16_u - local.tee $2 + local.tee $1 i32.const 7 i32.shr_u if block $for-continue|0 - local.get $2 + local.get $1 i32.const 55295 i32.sub i32.const 1025 i32.lt_u - local.get $8 + local.get $7 i32.const 1 i32.sub - local.get $3 + local.get $2 i32.gt_u i32.and if - local.get $3 + local.get $2 i32.const 1 i32.shl local.get $0 @@ -6692,15 +6687,15 @@ i32.const 1025 i32.lt_u if - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 local.get $4 i32.const 1023 i32.and - local.get $2 - local.tee $1 + local.get $1 + local.tee $3 i32.const 1023 i32.and i32.const 10 @@ -6708,88 +6703,88 @@ i32.or i32.const 65536 i32.add - local.tee $2 + local.tee $1 i32.const 131072 i32.ge_u if - local.get $6 + local.get $5 i32.const 1 i32.shl - local.get $7 + local.get $6 i32.add local.get $4 i32.const 16 i32.shl - local.get $1 + local.get $3 i32.or i32.store - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-continue|0 end end end - local.get $2 + local.get $1 i32.const 304 i32.eq if - local.get $6 + local.get $5 i32.const 1 i32.shl - local.get $7 + local.get $6 i32.add i32.const 50790505 i32.store - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 else - local.get $2 + local.get $1 i32.const 931 i32.eq if - local.get $6 + local.get $5 i32.const 1 i32.shl - local.get $7 + local.get $6 i32.add i32.const 962 i32.const 963 - local.get $8 + local.get $7 i32.const 1 i32.gt_u if (result i32) block $~lib/util/string/isFinalSigma|inlined.0 (result i32) i32.const 0 local.set $1 - local.get $3 i32.const 0 - local.get $3 - local.tee $2 + local.get $2 + local.tee $3 + local.tee $4 i32.const 30 i32.sub - local.tee $5 - local.get $5 + local.tee $8 + local.get $8 i32.const 0 i32.lt_s select local.set $9 loop $while-continue|1 - local.get $2 + local.get $4 local.get $9 i32.gt_s if - i32.const -1 - local.set $5 - block $~lib/util/string/codePointBefore|inlined.0 - local.get $2 + block $~lib/util/string/codePointBefore|inlined.0 (result i32) + i32.const -1 + local.get $4 i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $2 + drop + local.get $4 i32.const 1 i32.sub i32.const 1 @@ -6797,22 +6792,19 @@ local.get $0 i32.add i32.load16_u - local.tee $11 + local.tee $10 i32.const 64512 i32.and i32.const 56320 i32.eq - local.get $2 + local.get $4 i32.const 2 i32.sub i32.const 0 i32.ge_s i32.and if - local.get $11 - i32.const 1023 - i32.and - local.get $2 + local.get $4 i32.const 2 i32.sub i32.const 1 @@ -6820,37 +6812,40 @@ local.get $0 i32.add i32.load16_u - local.tee $10 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.add - i32.const 65536 - i32.add - local.set $5 - local.get $10 + local.tee $8 i32.const 64512 i32.and i32.const 55296 i32.eq - br_if $~lib/util/string/codePointBefore|inlined.0 + if + local.get $10 + i32.const 1023 + i32.and + local.get $8 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + i32.const 65536 + i32.add + br $~lib/util/string/codePointBefore|inlined.0 + end end i32.const 65533 - local.get $11 - local.get $11 + local.get $10 + local.get $10 i32.const 63488 i32.and i32.const 55296 i32.eq select - local.set $5 end - local.get $5 + local.tee $8 i32.const 918000 i32.lt_u if (result i32) - local.get $5 + local.get $8 i32.const 8 i32.shr_u i32.const 7212 @@ -6860,14 +6855,14 @@ i32.shl i32.const 7212 i32.add - local.get $5 + local.get $8 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $5 + local.get $8 i32.const 7 i32.and i32.shr_u @@ -6878,11 +6873,12 @@ end i32.eqz if - local.get $5 + i32.const 0 + local.get $8 i32.const 127370 i32.lt_u if (result i32) - local.get $5 + local.get $8 i32.const 8 i32.shr_u i32.const 10220 @@ -6892,14 +6888,14 @@ i32.shl i32.const 10220 i32.add - local.get $5 + local.get $8 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $5 + local.get $8 i32.const 7 i32.and i32.shr_u @@ -6908,22 +6904,20 @@ else i32.const 0 end - if (result i32) - i32.const 1 - else - i32.const 0 - br $~lib/util/string/isFinalSigma|inlined.0 - end + i32.eqz + br_if $~lib/util/string/isFinalSigma|inlined.0 + drop + i32.const 1 local.set $1 end - local.get $2 - local.get $5 + local.get $4 + local.get $8 i32.const 65536 i32.ge_s i32.const 1 i32.add i32.sub - local.set $2 + local.set $4 br $while-continue|1 end end @@ -6932,24 +6926,25 @@ i32.eqz br_if $~lib/util/string/isFinalSigma|inlined.0 drop + local.get $3 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 30 i32.add local.tee $1 - local.get $8 + local.get $7 local.get $1 - local.get $8 + local.get $7 i32.lt_s select - local.set $4 + local.set $3 loop $while-continue|2 - local.get $2 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s if - local.get $2 + local.get $4 i32.const 1 i32.shl local.get $0 @@ -6960,26 +6955,26 @@ i32.and i32.const 55296 i32.eq - local.get $8 - local.get $2 + local.get $7 + local.get $4 i32.const 1 i32.add i32.ne i32.and if - local.get $2 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.load16_u offset=2 - local.tee $5 + local.tee $8 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $5 + local.get $8 local.get $1 i32.const 10 i32.shl @@ -7059,9 +7054,9 @@ i32.ge_u i32.const 1 i32.add - local.get $2 + local.get $4 i32.add - local.set $2 + local.set $4 br $while-continue|2 end end @@ -7073,23 +7068,23 @@ select i32.store16 else - local.get $2 + local.get $1 i32.const 9398 i32.sub i32.const 25 i32.le_u if - local.get $6 + local.get $5 i32.const 1 i32.shl - local.get $7 + local.get $6 i32.add - local.get $2 + local.get $1 i32.const 26 i32.add i32.store16 else - local.get $2 + local.get $1 i32.const 0 call $~lib/util/casemap/casemap i32.const 2097151 @@ -7098,18 +7093,18 @@ i32.const 65536 i32.lt_u if - local.get $6 + local.get $5 i32.const 1 i32.shl - local.get $7 + local.get $6 i32.add local.get $1 i32.store16 else - local.get $6 + local.get $5 i32.const 1 i32.shl - local.get $7 + local.get $6 i32.add local.get $1 i32.const 65536 @@ -7128,40 +7123,40 @@ i32.shl i32.or i32.store - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 end end end end end else - local.get $6 + local.get $5 i32.const 1 i32.shl - local.get $7 + local.get $6 i32.add - local.get $2 + local.get $1 i32.const 7084 i32.add i32.load8_u i32.store16 end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 - local.get $6 + local.set $2 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0 end end - local.get $7 local.get $6 + local.get $5 i32.const 1 i32.shl call $~lib/rt/itcms/__renew @@ -7253,19 +7248,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -7275,22 +7270,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 37476 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -7304,7 +7299,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -7316,7 +7311,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -7324,15 +7319,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -7340,7 +7335,7 @@ else i32.const 21056 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1280 @@ -7350,7 +7345,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 21060 @@ -7368,25 +7363,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 774222188f..4ff847c323 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -712,43 +712,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 38924 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -759,221 +832,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 38924 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1216 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 38924 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1216 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 38924 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 38924 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1488 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1488 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2992,10 +2990,9 @@ call $~lib/string/String.UTF16.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 local.get $0 @@ -3448,19 +3445,19 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 1824 i32.store offset=4 i32.const 1824 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3485,19 +3482,19 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 1888 i32.store offset=4 i32.const 1888 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3522,19 +3519,19 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 1888 i32.store offset=4 i32.const 1888 i32.const 0 i32.const 1 call $~lib/string/String.UTF8.encode - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3596,10 +3593,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 local.get $0 @@ -3659,10 +3655,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 local.get $0 @@ -3851,7 +3846,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3880,26 +3874,25 @@ local.get $0 i32.const 1056 call $~lib/string/String.UTF16.encode - local.tee $1 + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1052 i32.load - local.set $2 - local.get $1 + local.set $1 + local.get $0 i32.const 0 call $~lib/string/String.UTF16.decodeUnsafe - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1552 i32.store offset=8 - local.get $3 + local.get $2 i32.const 1552 call $~lib/string/String.__eq i32.eqz @@ -3911,18 +3904,18 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $1 - local.get $2 call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $0 + local.get $1 i32.store local.get $2 i32.const 1056 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -3934,18 +3927,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 4 call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $0 + local.get $1 i32.store local.get $2 i32.const 1584 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1584 call $~lib/string/String.__eq i32.eqz @@ -3957,20 +3950,20 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 4 i32.add i32.const 2 call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $0 + local.get $1 i32.store local.get $2 i32.const 1616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1616 call $~lib/string/String.__eq i32.eqz @@ -3982,20 +3975,20 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 4 i32.add i32.const 4 call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $0 + local.get $1 i32.store local.get $2 i32.const 1648 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -4007,20 +4000,20 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 8 i32.add i32.const 4 call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $0 + local.get $1 i32.store local.get $2 i32.const 1680 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1680 call $~lib/string/String.__eq i32.eqz @@ -4032,7 +4025,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.add i32.const 0 @@ -4773,12 +4766,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $1 local.get $0 local.tee $3 - local.get $1 - local.get $3 i32.add - local.tee $5 + local.set $5 + local.get $3 + local.get $5 i32.gt_u if i32.const 0 @@ -4960,7 +4954,6 @@ i32.sub local.tee $2 local.get $0 - local.tee $1 i32.const 20 i32.sub local.tee $3 @@ -4980,25 +4973,25 @@ local.get $3 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $0 - local.get $1 + local.tee $1 + local.get $0 local.get $2 local.get $3 i32.load offset=16 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_u select call $~lib/memory/memory.copy - local.get $0 - local.set $1 + local.get $1 + local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -5008,19 +5001,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -5030,22 +5023,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 38924 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -5059,7 +5052,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -5071,7 +5064,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -5079,15 +5072,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -5095,7 +5088,7 @@ else i32.const 22512 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1344 @@ -5105,7 +5098,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 22516 @@ -5123,25 +5116,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 15f916ab60..367a9fe3e0 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1226,8 +1226,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -1851,43 +1849,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 42268 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1898,221 +1969,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 42268 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1440 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 42268 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1440 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 42268 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 42268 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1648 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1648 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -7478,14 +7474,14 @@ i32.const 0 i32.lt_s select - local.set $2 + local.set $7 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $8 + local.tee $9 if local.get $6 i32.eqz @@ -7509,10 +7505,10 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.get $6 - local.get $2 - local.get $2 + local.get $7 local.get $6 - i32.gt_s + local.get $7 + i32.lt_s select local.tee $1 i32.const 4 @@ -7570,7 +7566,7 @@ i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $2 i32.store offset=12 block $folding-inner0 loop $while-continue|1 @@ -7585,20 +7581,20 @@ local.get $4 local.get $3 i32.sub - local.tee $7 + local.tee $8 i32.const 0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.const 1 i32.shl local.tee $10 i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $8 i32.store offset=16 - local.get $7 + local.get $8 local.get $3 i32.const 1 i32.shl @@ -7606,18 +7602,18 @@ i32.add local.get $10 call $~lib/memory/memory.copy - local.get $9 - local.get $7 + local.get $2 + local.get $8 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=20 - local.get $9 + local.get $2 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end - local.get $2 + local.get $7 local.get $5 i32.const 1 i32.add @@ -7625,7 +7621,7 @@ i32.eq br_if $folding-inner0 local.get $4 - local.get $8 + local.get $9 i32.add local.set $3 br $while-continue|1 @@ -7634,7 +7630,7 @@ local.get $3 i32.eqz if - local.get $9 + local.get $2 local.get $0 call $~lib/array/Array<~lib/string/String>#push br $folding-inner0 @@ -7653,9 +7649,9 @@ local.tee $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=4 - local.get $2 + local.get $4 local.get $3 i32.const 1 i32.shl @@ -7663,29 +7659,24 @@ i32.add local.get $1 call $~lib/memory/memory.copy - local.get $9 local.get $2 + local.get $4 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=20 - local.get $9 + local.get $2 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return + br $folding-inner2 end global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $2 return end i32.const 0 @@ -7882,14 +7873,12 @@ i32.const 1 i32.le_u br_if $__inlined_func$~lib/string/String#codePointAt - local.get $3 - i32.load16_u offset=2 - local.tee $5 - local.set $0 local.get $4 i32.const 2 i32.eq - local.get $5 + local.get $3 + i32.load16_u offset=2 + local.tee $0 i32.const 64512 i32.and i32.const 55296 @@ -8055,10 +8044,9 @@ call $~lib/string/String#at local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1744 i32.store offset=4 local.get $0 @@ -8402,33 +8390,22 @@ i32.const 2176 i32.store offset=4 i32.const 0 + i32.const 2172 + i32.load + i32.const 1 + i32.shr_u + local.tee $0 local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $0 - local.tee $4 - local.get $4 - i32.const 0 i32.gt_s - select - local.set $4 - i32.const 0 - local.get $0 - local.get $4 - i32.const 2172 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.add - i32.lt_s br_if $__inlined_func$~lib/string/String#startsWith drop local.get $3 - local.get $4 + i32.const 0 i32.const 2176 local.get $0 call $~lib/util/string/compareImpl @@ -12355,10 +12332,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 9712 i32.store offset=24 local.get $0 @@ -12366,10 +12342,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=12 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 9872 i32.store offset=16 local.get $0 @@ -12377,10 +12352,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store offset=8 local.get $0 @@ -12795,12 +12769,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 1808 i32.store local.get $0 i32.const 12944 i32.store offset=4 + local.get $0 i32.const 1808 i32.const 12944 call $~lib/string/String#concat @@ -13699,28 +13673,28 @@ global.get $~lib/memory/__stack_pointer i32.const 65377 call $~lib/string/String.fromCodePoint - local.tee $0 + local.tee $3 i32.store offset=36 global.get $~lib/memory/__stack_pointer i32.const 55296 call $~lib/string/String.fromCodePoint - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store i32.const 56322 call $~lib/string/String.fromCodePoint - local.set $5 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store offset=4 - local.get $4 local.get $5 + local.get $0 call $~lib/string/String#concat - local.tee $3 + local.tee $0 i32.store offset=40 - local.get $0 local.get $3 + local.get $0 call $~lib/string/String.__gt i32.eqz if @@ -15959,9 +15933,9 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 1712 i32.store + local.get $0 i32.const 1712 i32.const 0 i32.const 2147483647 @@ -16001,12 +15975,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 1712 i32.store local.get $0 i32.const 1712 i32.store offset=4 + local.get $0 i32.const 1712 i32.const 1712 i32.const 2147483647 @@ -16025,12 +15999,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 1712 i32.store local.get $0 i32.const 2624 i32.store offset=4 + local.get $0 i32.const 1712 i32.const 2624 i32.const 2147483647 @@ -16070,12 +16044,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 15424 i32.store local.get $0 i32.const 7184 i32.store offset=4 + local.get $0 i32.const 15424 i32.const 7184 i32.const 2147483647 @@ -16115,12 +16089,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 15424 i32.store local.get $0 i32.const 2624 i32.store offset=4 + local.get $0 i32.const 15424 i32.const 2624 i32.const 2147483647 @@ -16196,12 +16170,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 15456 i32.store local.get $0 i32.const 15504 i32.store offset=4 + local.get $0 i32.const 15456 i32.const 15504 i32.const 2147483647 @@ -16277,12 +16251,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 15536 i32.store local.get $0 i32.const 2624 i32.store offset=4 + local.get $0 i32.const 15536 i32.const 2624 i32.const 2147483647 @@ -16376,12 +16350,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 15568 i32.store local.get $0 i32.const 2624 i32.store offset=4 + local.get $0 i32.const 15568 i32.const 2624 i32.const 2147483647 @@ -16475,12 +16449,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 15600 i32.store local.get $0 i32.const 2624 i32.store offset=4 + local.get $0 i32.const 15600 i32.const 2624 i32.const 2147483647 @@ -16574,12 +16548,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 2336 i32.store local.get $0 i32.const 1712 i32.store offset=4 + local.get $0 i32.const 2336 i32.const 1712 i32.const 2147483647 @@ -16655,12 +16629,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 2336 i32.store local.get $0 i32.const 1712 i32.store offset=4 + local.get $0 i32.const 2336 i32.const 1712 i32.const 0 @@ -16679,12 +16653,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 2336 i32.store local.get $0 i32.const 1712 i32.store offset=4 + local.get $0 i32.const 2336 i32.const 1712 i32.const 1 @@ -16724,12 +16698,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 15424 i32.store local.get $0 i32.const 2624 i32.store offset=4 + local.get $0 i32.const 15424 i32.const 2624 i32.const 1 @@ -16769,12 +16743,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 2336 i32.store local.get $0 i32.const 1712 i32.store offset=4 + local.get $0 i32.const 2336 i32.const 1712 i32.const 4 @@ -16850,12 +16824,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 2336 i32.store local.get $0 i32.const 1712 i32.store offset=4 + local.get $0 i32.const 2336 i32.const 1712 i32.const -1 @@ -16931,12 +16905,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 15424 i32.store local.get $0 i32.const 2624 i32.store offset=4 + local.get $0 i32.const 15424 i32.const 2624 i32.const -1 @@ -21703,43 +21677,45 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store local.get $0 i32.load offset=4 + local.set $2 + i32.const 0 local.set $0 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add i32.load i32.store16 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -21747,7 +21723,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) (func $~lib/string/String.fromCodePoint (param $0 i32) (result i32) (local $1 i32) @@ -21858,10 +21834,6 @@ i32.shl local.tee $3 i32.eqz - local.get $1 - i32.const 1 - i32.shl - local.tee $1 local.get $0 i32.const 20 i32.sub @@ -21870,8 +21842,12 @@ i32.shr_u i32.const 1 i32.shl - local.tee $6 - i32.lt_u + local.tee $4 + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + i32.gt_u i32.or if global.get $~lib/memory/__stack_pointer @@ -21885,17 +21861,17 @@ local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store local.get $3 local.get $1 - local.get $6 + local.get $4 i32.sub - local.tee $5 + local.tee $6 i32.lt_u if local.get $3 - local.get $5 + local.get $6 i32.const 2 i32.sub local.get $3 @@ -21903,36 +21879,36 @@ local.tee $1 i32.mul local.set $7 - local.get $4 + local.get $5 local.get $2 local.get $3 local.get $1 call $~lib/memory/memory.repeat - local.get $4 + local.get $5 local.get $7 i32.add local.get $2 - local.get $5 + local.get $6 local.get $7 i32.sub call $~lib/memory/memory.copy else - local.get $4 - local.get $2 local.get $5 + local.get $2 + local.get $6 call $~lib/memory/memory.copy end - local.get $4 local.get $5 + local.get $6 i32.add local.get $0 - local.get $6 + local.get $4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 ) (func $~lib/string/String#padEnd (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -21965,12 +21941,8 @@ i32.shr_u i32.const 1 i32.shl - local.tee $4 - i32.eqz - local.get $1 - i32.const 1 - i32.shl local.tee $3 + i32.eqz local.get $0 i32.const 20 i32.sub @@ -21979,8 +21951,12 @@ i32.shr_u i32.const 1 i32.shl + local.tee $4 + local.get $1 + i32.const 1 + i32.shl local.tee $5 - i32.lt_u + i32.gt_u i32.or if global.get $~lib/memory/__stack_pointer @@ -21991,53 +21967,53 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store local.get $1 local.get $0 - local.get $5 - call $~lib/memory/memory.copy local.get $4 + call $~lib/memory/memory.copy local.get $3 local.get $5 + local.get $4 i32.sub - local.tee $3 + local.tee $5 i32.lt_u if - local.get $4 local.get $3 + local.get $5 i32.const 2 i32.sub - local.get $4 + local.get $3 i32.div_u local.tee $0 i32.mul local.set $6 local.get $1 - local.get $5 + local.get $4 i32.add - local.tee $5 + local.tee $4 local.get $2 - local.get $4 + local.get $3 local.get $0 call $~lib/memory/memory.repeat - local.get $5 + local.get $4 local.get $6 i32.add local.get $2 - local.get $3 + local.get $5 local.get $6 i32.sub call $~lib/memory/memory.copy else local.get $1 - local.get $5 + local.get $4 i32.add local.get $2 - local.get $3 + local.get $5 call $~lib/memory/memory.copy end global.get $~lib/memory/__stack_pointer @@ -22914,25 +22890,25 @@ (local $9 i32) (local $10 i32) (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 25884 + i32.lt_s + if + i32.const 42288 + i32.const 42336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 25884 - i32.lt_s - if - i32.const 42288 - i32.const 42336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store local.get $0 i32.const 20 i32.sub @@ -22988,9 +22964,9 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 local.get $2 local.get $3 i32.const 1 @@ -22999,16 +22975,16 @@ local.get $3 local.set $1 loop $for-loop|0 - local.get $4 local.get $5 - i32.lt_u + local.get $10 + i32.gt_u if local.get $1 i32.const 1 i32.shl - local.get $6 - i32.add local.get $4 + i32.add + local.get $10 i32.const 1 i32.shl local.get $0 @@ -23021,7 +22997,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $6 + local.get $4 i32.add local.get $2 local.get $3 @@ -23032,10 +23008,10 @@ local.get $3 i32.add local.set $1 - local.get $4 + local.get $10 i32.const 1 i32.add - local.set $4 + local.set $10 br $for-loop|0 end end @@ -23043,7 +23019,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 return end local.get $3 @@ -23832,7 +23808,7 @@ block $__inlined_func$~lib/util/number/ulog_base (result i32) local.get $7 i64.extend_i32_u - local.tee $6 + local.tee $5 local.set $2 local.get $1 i32.popcnt @@ -23855,7 +23831,7 @@ end local.get $1 i64.extend_i32_s - local.tee $5 + local.tee $6 local.set $3 i32.const 1 local.set $0 @@ -23885,7 +23861,7 @@ i64.ne if local.get $2 - local.get $5 + local.get $6 i64.div_u local.set $2 local.get $0 @@ -23909,7 +23885,7 @@ local.tee $0 i32.store local.get $0 - local.get $6 + local.get $5 local.get $7 local.get $1 call $~lib/util/number/utoa64_any_core @@ -24062,17 +24038,15 @@ local.get $0 i64.extend_i32_u local.set $2 - local.get $1 - local.set $0 loop $while-continue|0 - local.get $0 + local.get $1 i32.const 2 i32.ge_u if - local.get $0 + local.get $1 i32.const 2 i32.sub - local.tee $0 + local.tee $1 i32.const 1 i32.shl local.get $3 @@ -24094,7 +24068,7 @@ br $while-continue|0 end end - local.get $0 + local.get $1 i32.const 1 i32.and if diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 71190475be..41f8793785 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -285,8 +285,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -910,43 +908,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 19084 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -957,221 +1028,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 19084 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1200 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 19084 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1200 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 19084 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 19084 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1472 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + if + i32.const 0 + i32.const 1472 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock + end + end + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3066,7 +3062,6 @@ i32.store block $__inlined_func$~lib/string/String#concat local.get $0 - local.tee $2 i32.const 20 i32.sub i32.load offset=16 @@ -3085,7 +3080,7 @@ i32.shl local.tee $4 i32.add - local.tee $0 + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3093,20 +3088,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1824 - local.set $0 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 local.get $2 + local.get $0 local.get $3 call $~lib/memory/memory.copy - local.get $0 + local.get $2 local.get $3 i32.add local.get $1 @@ -3117,7 +3112,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $0 + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -3340,7 +3335,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3513,11 +3507,11 @@ global.set $~lib/symbol/idToString end global.get $~lib/symbol/nextId - local.tee $2 + local.tee $3 i32.const 1 i32.add global.set $~lib/symbol/nextId - local.get $2 + local.get $3 i32.eqz if unreachable @@ -3525,7 +3519,7 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $~lib/symbol/stringToId - local.tee $5 + local.tee $4 i32.store local.get $0 i32.const 4 @@ -3535,31 +3529,29 @@ i32.const 2700 i32.lt_s br_if $folding-inner1 - local.get $2 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> - local.tee $6 + local.tee $5 call $~lib/map/Map<~lib/string/String,usize>#find local.tee $0 if local.get $0 - local.get $1 + local.get $3 i32.store offset=4 else - local.get $5 + local.get $4 i32.load offset=16 - local.get $5 + local.get $4 i32.load offset=12 i32.eq if - local.get $5 + local.get $4 i32.load offset=20 - local.get $5 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -3567,17 +3559,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $5 + local.get $4 i32.load offset=4 else - local.get $5 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3594,14 +3586,14 @@ i32.const 0 i32.store offset=8 local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -3609,59 +3601,59 @@ i32.shl i32.const 3 i32.div_s - local.tee $9 + local.tee $8 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store offset=4 - local.get $5 + local.get $4 i32.load offset=8 - local.tee $4 - local.get $5 + local.tee $2 + local.get $4 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $10 - local.get $3 + local.set $9 + local.get $1 local.set $0 loop $while-continue|0 - local.get $4 - local.get $10 + local.get $2 + local.get $9 i32.ne if - local.get $4 + local.get $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.load - local.tee $11 + local.tee $10 i32.store offset=8 local.get $0 - local.get $11 + local.get $10 i32.store local.get $0 - local.get $4 + local.get $2 i32.load offset=4 i32.store offset=4 local.get $0 - local.get $11 + local.get $10 call $~lib/util/hash/HASH<~lib/string/String> - local.get $7 + local.get $6 i32.and i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add - local.tee $11 + local.tee $10 i32.load i32.store offset=8 - local.get $11 + local.get $10 local.get $0 i32.store local.get $0 @@ -3669,41 +3661,41 @@ i32.add local.set $0 end - local.get $4 + local.get $2 i32.const 12 i32.add - local.set $4 + local.set $2 br $while-continue|0 end end - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.store - local.get $8 + local.get $7 if - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 - local.get $7 + local.get $4 + local.get $6 i32.store offset=4 - local.get $5 - local.get $3 + local.get $4 + local.get $1 i32.store offset=8 - local.get $3 + local.get $1 if - local.get $5 - local.get $3 + local.get $4 + local.get $1 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 - local.get $9 + local.get $4 + local.get $8 i32.store offset=12 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -3712,18 +3704,18 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.load offset=8 local.tee $0 i32.store - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $3 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $1 i32.const 12 i32.mul local.get $0 @@ -3731,33 +3723,33 @@ local.tee $0 i32.const 1056 i32.store - local.get $5 + local.get $4 i32.const 1056 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link local.get $0 - local.get $1 + local.get $3 i32.store offset=4 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $6 + local.get $5 i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $1 i32.load i32.store offset=8 - local.get $3 + local.get $1 local.get $0 i32.store end @@ -3766,11 +3758,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $~lib/symbol/idToString - local.tee $5 + local.tee $4 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3781,9 +3772,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $5 + local.get $4 i32.load - local.get $1 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3793,26 +3784,26 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $6 - local.get $5 + local.tee $5 + local.get $4 i32.load offset=4 i32.and i32.const 2 @@ -3826,19 +3817,19 @@ if local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $1 i32.const -2 i32.and local.set $0 @@ -3853,20 +3844,20 @@ local.get $0 i32.const 1056 i32.store offset=4 - local.get $5 + local.get $4 i32.const 1056 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link else - local.get $5 + local.get $4 i32.load offset=16 - local.get $5 + local.get $4 i32.load offset=12 i32.eq if - local.get $5 + local.get $4 i32.load offset=20 - local.get $5 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -3874,17 +3865,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $5 + local.get $4 i32.load offset=4 else - local.get $5 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3898,14 +3889,14 @@ i64.const 0 i64.store local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -3913,46 +3904,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $9 + local.tee $8 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store offset=4 - local.get $5 + local.get $4 i32.load offset=8 - local.tee $4 - local.get $5 + local.tee $2 + local.get $4 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $10 - local.get $3 + local.set $9 + local.get $1 local.set $0 loop $while-continue|00 - local.get $4 - local.get $10 + local.get $2 + local.get $9 i32.ne if - local.get $4 + local.get $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $4 + local.get $2 i32.load - local.tee $11 + local.tee $10 i32.store local.get $0 - local.get $4 + local.get $2 i32.load offset=4 i32.store offset=4 local.get $0 - local.get $7 - local.get $11 + local.get $10 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3961,34 +3951,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $11 - local.get $11 + local.tee $10 i32.const 15 i32.shr_u + local.get $10 i32.xor i32.const -2048144777 i32.mul - local.tee $11 - local.get $11 + local.tee $10 i32.const 13 i32.shr_u + local.get $10 i32.xor i32.const -1028477379 i32.mul - local.tee $11 - local.get $11 + local.tee $10 i32.const 16 i32.shr_u + local.get $10 i32.xor + local.get $6 i32.and i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add - local.tee $11 + local.tee $10 i32.load i32.store offset=8 - local.get $11 + local.get $10 local.get $0 i32.store local.get $0 @@ -3996,41 +3987,41 @@ i32.add local.set $0 end - local.get $4 + local.get $2 i32.const 12 i32.add - local.set $4 + local.set $2 br $while-continue|00 end end - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.store - local.get $8 + local.get $7 if - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 - local.get $7 + local.get $4 + local.get $6 i32.store offset=4 - local.get $5 - local.get $3 + local.get $4 + local.get $1 i32.store offset=8 - local.get $3 + local.get $1 if - local.get $5 - local.get $3 + local.get $4 + local.get $1 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 - local.get $9 + local.get $4 + local.get $8 i32.store offset=12 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4039,44 +4030,44 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.load offset=8 local.tee $0 i32.store - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $3 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $1 i32.const 12 i32.mul local.get $0 i32.add local.tee $0 - local.get $1 + local.get $3 i32.store local.get $0 i32.const 1056 i32.store offset=4 - local.get $5 + local.get $4 i32.const 1056 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $5 + local.get $4 i32.load - local.get $5 + local.get $4 i32.load offset=4 - local.get $6 + local.get $5 i32.and i32.const 2 i32.shl @@ -4096,7 +4087,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end i32.const 19104 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 4762ac7537..fc7659cc58 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -845,8 +845,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -1520,43 +1518,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 33012 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1567,177 +1638,102 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 33012 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1232 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 33012 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1232 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 - i32.const 33012 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2410,7 +2406,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -2452,7 +2448,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -2494,7 +2490,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -2536,7 +2532,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -2582,7 +2578,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -2628,7 +2624,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -2674,7 +2670,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -2720,7 +2716,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -2766,7 +2762,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -2812,7 +2808,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -2858,7 +2854,7 @@ i32.load offset=4 local.get $1 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -6574,64 +6570,66 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $2 + local.tee $1 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $2 i32.lt_s if - local.get $4 - local.get $1 + local.get $2 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.eqz @@ -6660,26 +6658,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|02 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 11 @@ -6711,26 +6709,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|05 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 255 @@ -6762,26 +6760,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|08 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -6813,26 +6811,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|011 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -6864,26 +6862,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 3 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|014 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -6915,26 +6913,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 4 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|017 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -6966,26 +6964,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 10 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|020 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 1 @@ -7015,16 +7013,16 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 - local.get $2 + local.get $3 i32.const 100 i32.sub local.tee $0 @@ -7034,12 +7032,12 @@ i32.gt_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|023 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -7072,57 +7070,59 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $2 + local.tee $0 i32.load offset=8 - local.tee $1 - local.set $0 + local.set $3 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $1 + local.get $2 + i32.load offset=8 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.add - local.get $1 + local.get $2 i32.const 1 i32.sub - local.get $0 - local.get $0 - local.get $1 - i32.ge_s + local.get $3 + local.get $2 + local.get $3 + i32.le_s select - local.get $0 + local.get $3 i32.const 0 i32.lt_s select - local.set $2 - local.get $4 + local.set $1 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 local.get $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $1 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -7133,43 +7133,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 + local.tee $3 local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $4 - i32.load offset=8 - local.tee $0 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $0 local.get $2 + local.get $3 i32.add - local.get $0 + local.get $3 i32.const 1 i32.sub local.get $2 - local.get $0 local.get $2 - i32.le_s + local.get $3 + i32.ge_s select local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|06 local.get $1 i32.const 0 i32.ge_s if - local.get $0 local.get $1 + local.get $2 i32.add i32.load8_u i32.const 11 @@ -7198,42 +7197,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 - local.tee $2 - local.set $0 + local.tee $3 + local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $0 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $0 - local.get $0 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|012 local.get $1 i32.const 0 i32.ge_s if - local.get $0 local.get $1 + local.get $2 i32.add i32.load8_u i32.const 255 @@ -7262,42 +7261,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 - local.tee $2 - local.set $0 + local.tee $3 + local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $0 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $0 - local.get $0 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|018 local.get $1 i32.const 0 i32.ge_s if - local.get $0 local.get $1 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -7327,7 +7326,8 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $4 + local.get $0 + local.tee $2 i32.load offset=8 local.tee $0 i32.eqz @@ -7341,9 +7341,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|024 local.get $0 i32.const 0 @@ -7351,7 +7351,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -7381,7 +7381,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 - local.get $4 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -7395,9 +7395,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|027 local.get $0 i32.const 0 @@ -7405,7 +7405,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -7435,7 +7435,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 - local.get $4 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -7449,9 +7449,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|030 local.get $0 i32.const 0 @@ -7459,7 +7459,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -7489,7 +7489,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 - local.get $4 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -7503,9 +7503,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|033 local.get $0 i32.const 0 @@ -7513,7 +7513,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 1 @@ -7543,7 +7543,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 - local.get $4 + local.get $2 i32.load offset=8 local.tee $1 i32.eqz @@ -7552,7 +7552,7 @@ i32.const 10 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|036 @@ -7591,7 +7591,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 - local.get $4 + local.get $2 i32.load offset=8 local.tee $1 i32.eqz @@ -7600,7 +7600,7 @@ i32.const 11 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|039 @@ -7637,7 +7637,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 4 i32.const 9 call $~lib/typedarray/Int8Array#subarray @@ -8076,65 +8076,67 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $2 + local.tee $1 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $2 i32.lt_s if - local.get $4 - local.get $1 + local.get $2 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.eqz @@ -8163,26 +8165,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|02 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 11 @@ -8214,26 +8216,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|05 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 255 @@ -8265,26 +8267,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|08 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -8316,26 +8318,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|011 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -8367,26 +8369,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 3 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|014 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -8418,26 +8420,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 4 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|017 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -8469,26 +8471,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 10 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|020 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 1 @@ -8518,16 +8520,16 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $2 + local.get $3 i32.const 100 i32.sub local.tee $0 @@ -8537,12 +8539,12 @@ i32.gt_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|023 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -8575,57 +8577,59 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $2 + local.tee $0 i32.load offset=8 - local.tee $1 - local.set $0 + local.set $3 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + local.get $2 + i32.load offset=8 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.add - local.get $1 + local.get $2 i32.const 1 i32.sub - local.get $0 - local.get $0 - local.get $1 - i32.ge_s + local.get $3 + local.get $2 + local.get $3 + i32.le_s select - local.get $0 + local.get $3 i32.const 0 i32.lt_s select - local.set $2 - local.get $4 + local.set $1 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 local.get $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $1 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -8636,43 +8640,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 + local.tee $3 local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $4 - i32.load offset=8 - local.tee $0 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $0 local.get $2 + local.get $3 i32.add - local.get $0 + local.get $3 i32.const 1 i32.sub local.get $2 - local.get $0 local.get $2 - i32.le_s + local.get $3 + i32.ge_s select local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|06 local.get $1 i32.const 0 i32.ge_s if - local.get $0 local.get $1 + local.get $2 i32.add i32.load8_u i32.const 11 @@ -8701,42 +8704,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 - local.tee $2 - local.set $0 + local.tee $3 + local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $0 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $0 - local.get $0 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|012 local.get $1 i32.const 0 i32.ge_s if - local.get $0 local.get $1 + local.get $2 i32.add i32.load8_u i32.const 255 @@ -8765,42 +8768,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 - local.tee $2 - local.set $0 + local.tee $3 + local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $0 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $0 - local.get $0 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|018 local.get $1 i32.const 0 i32.ge_s if - local.get $0 local.get $1 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -8830,7 +8833,8 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $4 + local.get $0 + local.tee $2 i32.load offset=8 local.tee $0 i32.eqz @@ -8844,9 +8848,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|024 local.get $0 i32.const 0 @@ -8854,7 +8858,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -8884,7 +8888,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $4 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -8898,9 +8902,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|027 local.get $0 i32.const 0 @@ -8908,7 +8912,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -8938,7 +8942,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $4 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -8952,9 +8956,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|030 local.get $0 i32.const 0 @@ -8962,7 +8966,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -8992,7 +8996,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $4 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -9006,9 +9010,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|033 local.get $0 i32.const 0 @@ -9016,7 +9020,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 1 @@ -9046,7 +9050,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $4 + local.get $2 i32.load offset=8 local.tee $1 i32.eqz @@ -9055,7 +9059,7 @@ i32.const 10 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|036 @@ -9094,7 +9098,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $4 + local.get $2 i32.load offset=8 local.tee $1 i32.eqz @@ -9103,7 +9107,7 @@ i32.const 11 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|039 @@ -9140,7 +9144,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9 call $~lib/typedarray/Uint8Array#subarray local.tee $4 @@ -9578,65 +9582,67 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $2 + local.tee $1 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $2 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $2 i32.lt_s if - local.get $4 - local.get $1 + local.get $2 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.eqz @@ -9665,26 +9671,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|02 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 11 @@ -9716,26 +9722,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|05 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 255 @@ -9767,26 +9773,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|08 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -9818,26 +9824,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|011 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -9869,26 +9875,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 3 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|014 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -9920,26 +9926,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 4 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|017 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -9971,26 +9977,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 10 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|020 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 1 @@ -10020,16 +10026,16 @@ i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $2 + local.get $3 i32.const 100 i32.sub local.tee $0 @@ -10039,12 +10045,12 @@ i32.gt_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|023 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -10077,57 +10083,59 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $2 + local.tee $0 i32.load offset=8 - local.tee $1 - local.set $0 + local.set $3 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + local.get $2 + i32.load offset=8 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.add - local.get $1 + local.get $2 i32.const 1 i32.sub - local.get $0 - local.get $0 - local.get $1 - i32.ge_s + local.get $3 + local.get $2 + local.get $3 + i32.le_s select - local.get $0 + local.get $3 i32.const 0 i32.lt_s select - local.set $2 - local.get $4 + local.set $1 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 local.get $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $1 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -10138,43 +10146,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 + local.tee $3 local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $4 - i32.load offset=8 - local.tee $0 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $0 local.get $2 + local.get $3 i32.add - local.get $0 + local.get $3 i32.const 1 i32.sub local.get $2 - local.get $0 local.get $2 - i32.le_s + local.get $3 + i32.ge_s select local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|06 local.get $1 i32.const 0 i32.ge_s if - local.get $0 local.get $1 + local.get $2 i32.add i32.load8_u i32.const 11 @@ -10203,42 +10210,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 - local.tee $2 - local.set $0 + local.tee $3 + local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $0 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $0 - local.get $0 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|012 local.get $1 i32.const 0 i32.ge_s if - local.get $0 local.get $1 + local.get $2 i32.add i32.load8_u i32.const 255 @@ -10267,42 +10274,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $4 + local.get $0 i32.load offset=8 - local.tee $2 - local.set $0 + local.tee $3 + local.set $2 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $2 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $0 local.get $2 + local.get $3 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.get $0 - local.get $0 local.get $2 + local.get $2 + local.get $3 i32.ge_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select local.set $1 - local.get $4 + local.get $0 i32.load offset=4 - local.set $0 + local.set $2 loop $while-continue|018 local.get $1 i32.const 0 i32.ge_s if - local.get $0 local.get $1 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -10332,7 +10339,8 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $4 + local.get $0 + local.tee $2 i32.load offset=8 local.tee $0 i32.eqz @@ -10346,9 +10354,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|024 local.get $0 i32.const 0 @@ -10356,7 +10364,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -10386,7 +10394,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $4 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -10400,9 +10408,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|027 local.get $0 i32.const 0 @@ -10410,7 +10418,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -10440,7 +10448,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $4 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -10454,9 +10462,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|030 local.get $0 i32.const 0 @@ -10464,7 +10472,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 @@ -10494,7 +10502,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $4 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -10508,9 +10516,9 @@ i32.le_s select local.set $0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|033 local.get $0 i32.const 0 @@ -10518,7 +10526,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 1 @@ -10548,7 +10556,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $4 + local.get $2 i32.load offset=8 local.tee $1 i32.eqz @@ -10557,7 +10565,7 @@ i32.const 10 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|036 @@ -10596,7 +10604,7 @@ i32.const -1 local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $4 + local.get $2 i32.load offset=8 local.tee $1 i32.eqz @@ -10605,7 +10613,7 @@ i32.const 11 i32.sub local.set $0 - local.get $4 + local.get $2 i32.load offset=4 local.set $1 loop $while-continue|039 @@ -10642,7 +10650,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9 call $~lib/typedarray/Uint8ClampedArray#subarray local.tee $4 @@ -11159,42 +11167,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7728 i32.store - local.get $3 + local.get $0 i32.const 7740 i32.load - local.tee $2 + local.tee $0 call $~lib/typedarray/Int16Array#constructor local.tee $4 i32.store offset=4 loop $for-loop|0 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 - local.get $0 + local.get $1 i32.const 7728 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end + i32.const 0 + local.set $1 i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 @@ -12547,43 +12556,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 7728 i32.store - local.get $3 + local.get $0 i32.const 7740 i32.load - local.tee $2 + local.tee $0 call $~lib/typedarray/Uint16Array#constructor local.tee $4 i32.store offset=4 loop $for-loop|0 local.get $0 - local.get $2 - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 - local.get $0 + local.get $1 i32.const 7728 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end + i32.const 0 + local.set $1 i32.const -1 local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 @@ -13936,41 +13946,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $2 + local.tee $1 call $~lib/typedarray/Int32Array#constructor local.tee $3 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 @@ -15493,41 +15504,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $2 + local.tee $1 call $~lib/typedarray/Uint32Array#constructor local.tee $3 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $2 i32.lt_s if local.get $3 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 @@ -17049,41 +17061,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $3 + local.tee $1 call $~lib/typedarray/Int64Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 @@ -18622,41 +18636,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $3 + local.tee $1 call $~lib/typedarray/Uint64Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 @@ -20195,41 +20211,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $3 + local.tee $1 call $~lib/typedarray/Float32Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 @@ -21770,41 +21788,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $3 + local.tee $1 call $~lib/typedarray/Float64Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end + i32.const 0 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 @@ -23529,7 +23549,7 @@ (local $6 i32) local.get $0 i32.load offset=4 - local.set $5 + local.set $3 local.get $0 i32.load offset=8 local.set $0 @@ -23555,7 +23575,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 0 i32.lt_s if @@ -23567,10 +23587,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $6 + local.get $2 i32.eqz if - local.get $5 + local.get $3 i32.load8_s call $~lib/util/number/itoa32 local.set $0 @@ -23581,7 +23601,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.const 9580 i32.load i32.const 1 @@ -23592,73 +23612,75 @@ i32.mul i32.const 11 i32.add - local.tee $2 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add local.get $3 local.get $5 i32.add i32.load8_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $5 - local.get $6 + local.get $2 + local.get $3 i32.add i32.load8_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -23671,6 +23693,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 ) @@ -23872,7 +23896,7 @@ (local $6 i32) local.get $0 i32.load offset=4 - local.set $5 + local.set $3 local.get $0 i32.load offset=8 local.set $0 @@ -23898,7 +23922,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 0 i32.lt_s if @@ -23910,10 +23934,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $6 + local.get $2 i32.eqz if - local.get $5 + local.get $3 i32.load8_u call $~lib/util/number/utoa32 local.set $0 @@ -23924,7 +23948,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.const 9580 i32.load i32.const 1 @@ -23935,73 +23959,75 @@ i32.mul i32.const 10 i32.add - local.tee $2 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add local.get $3 local.get $5 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $5 - local.get $6 + local.get $2 + local.get $3 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -24014,6 +24040,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 ) @@ -24118,7 +24146,7 @@ (local $6 i32) local.get $0 i32.load offset=4 - local.set $5 + local.set $3 local.get $0 i32.load offset=8 i32.const 1 @@ -24146,7 +24174,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 0 i32.lt_s if @@ -24158,10 +24186,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $6 + local.get $2 i32.eqz if - local.get $5 + local.get $3 i32.load16_s call $~lib/util/number/itoa32 local.set $0 @@ -24172,7 +24200,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.const 9580 i32.load i32.const 1 @@ -24183,77 +24211,79 @@ i32.mul i32.const 11 i32.add - local.tee $2 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 1 i32.shl - local.get $5 + local.get $3 i32.add i32.load16_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $6 + local.get $2 i32.const 1 i32.shl - local.get $5 + local.get $3 i32.add i32.load16_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -24266,6 +24296,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 ) @@ -24350,7 +24382,7 @@ (local $6 i32) local.get $0 i32.load offset=4 - local.set $5 + local.set $3 local.get $0 i32.load offset=8 i32.const 1 @@ -24378,7 +24410,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 0 i32.lt_s if @@ -24390,10 +24422,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $6 + local.get $2 i32.eqz if - local.get $5 + local.get $3 i32.load16_u call $~lib/util/number/utoa32 local.set $0 @@ -24404,7 +24436,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.const 9580 i32.load i32.const 1 @@ -24415,77 +24447,79 @@ i32.mul i32.const 10 i32.add - local.tee $2 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 1 i32.shl - local.get $5 + local.get $3 i32.add i32.load16_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $6 + local.get $2 i32.const 1 i32.shl - local.get $5 + local.get $3 i32.add i32.load16_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -24498,6 +24532,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 ) @@ -24597,7 +24633,7 @@ (local $6 i32) local.get $0 i32.load offset=4 - local.set $5 + local.set $3 local.get $0 i32.load offset=8 i32.const 2 @@ -24625,7 +24661,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 0 i32.lt_s if @@ -24637,10 +24673,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $6 + local.get $2 i32.eqz if - local.get $5 + local.get $3 i32.load call $~lib/util/number/itoa32 local.set $0 @@ -24651,7 +24687,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.const 9580 i32.load i32.const 1 @@ -24662,77 +24698,79 @@ i32.mul i32.const 11 i32.add - local.tee $2 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $6 + local.get $2 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -24745,6 +24783,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 ) @@ -24822,7 +24862,7 @@ (local $6 i32) local.get $0 i32.load offset=4 - local.set $5 + local.set $3 local.get $0 i32.load offset=8 i32.const 2 @@ -24850,7 +24890,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 0 i32.lt_s if @@ -24862,10 +24902,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $6 + local.get $2 i32.eqz if - local.get $5 + local.get $3 i32.load call $~lib/util/number/utoa32 local.set $0 @@ -24876,7 +24916,7 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.const 9580 i32.load i32.const 1 @@ -24887,77 +24927,79 @@ i32.mul i32.const 10 i32.add - local.tee $2 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $6 + local.get $2 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -24970,6 +25012,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 ) @@ -25295,7 +25339,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $0 + local.tee $1 select local.tee $2 i64.const 4294967295 @@ -25350,16 +25394,16 @@ i32.add end end - local.get $0 + local.get $1 i32.add local.tee $4 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 local.get $3 local.get $4 call $~lib/util/number/utoa32_dec_lut @@ -25415,23 +25459,23 @@ i32.add end end - local.get $0 + local.get $1 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 local.get $2 local.get $3 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -25439,7 +25483,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 end local.set $0 global.get $~lib/memory/__stack_pointer @@ -25465,17 +25509,19 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 local.get $3 local.get $6 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add local.get $3 i32.const 3 @@ -25484,25 +25530,25 @@ i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $7 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9584 local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $7 i32.add - local.set $1 + local.set $0 end local.get $3 i32.const 1 @@ -25512,10 +25558,10 @@ end end local.get $4 - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add local.get $6 i32.const 3 @@ -25524,13 +25570,13 @@ i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -25543,6 +25589,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 return @@ -25686,16 +25734,16 @@ ) (func $~lib/typedarray/Uint64Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) block $folding-inner0 local.get $0 i32.load offset=4 - local.set $2 + local.set $7 local.get $0 i32.load offset=8 i32.const 3 @@ -25716,7 +25764,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $3 + local.tee $6 i32.const 0 i32.lt_s if @@ -25728,13 +25776,13 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $3 + local.get $6 i32.eqz if block $__inlined_func$~lib/util/number/utoa64 (result i32) - local.get $2 + local.get $7 i64.load - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25746,7 +25794,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $2 i64.eqz if global.get $~lib/memory/__stack_pointer @@ -25756,139 +25804,139 @@ i32.const 8000 br $__inlined_func$~lib/util/number/utoa64 end - local.get $7 + local.get $2 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i32.wrap_i64 - local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $2 local.get $0 + local.get $1 + local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $2 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $7 + local.get $2 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $7 + local.get $2 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $7 + local.get $2 i64.const 10000000000 i64.ge_u i32.add else - local.get $7 + local.get $2 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $7 + local.get $2 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $7 + local.get $2 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $7 + local.get $2 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $7 + local.get $2 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $7 + local.get $2 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.tee $0 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $7 local.get $0 + local.get $2 + local.get $1 call $~lib/util/number/utoa64_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 end local.set $0 global.get $~lib/memory/__stack_pointer @@ -25898,88 +25946,90 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $6 + local.tee $3 i32.const 20 i32.add i32.mul i32.const 20 i32.add - local.tee $4 + local.tee $5 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $5 + local.get $4 i32.const 3 i32.shl - local.get $2 + local.get $7 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 - local.get $6 + local.set $0 + local.get $3 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9584 - local.get $6 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 - local.get $6 + local.get $0 + local.get $3 i32.add - local.set $1 + local.set $0 end - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|0 end end - local.get $4 - local.get $1 + local.get $5 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $6 i32.const 3 i32.shl - local.get $2 + local.get $7 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -25992,6 +26042,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 return @@ -27120,7 +27172,7 @@ (local $6 i32) local.get $0 i32.load offset=4 - local.set $5 + local.set $3 local.get $0 i32.load offset=8 i32.const 2 @@ -27148,7 +27200,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 0 i32.lt_s if @@ -27160,10 +27212,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end - local.get $6 + local.get $2 i32.eqz if - local.get $5 + local.get $3 f32.load f64.promote_f32 call $~lib/util/number/dtoa @@ -27175,7 +27227,7 @@ br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.const 9580 i32.load i32.const 1 @@ -27186,79 +27238,81 @@ i32.mul i32.const 28 i32.add - local.tee $2 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add f32.load f64.promote_f32 call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $6 + local.get $2 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add f32.load f64.promote_f32 call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -27271,6 +27325,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 ) @@ -27283,7 +27339,7 @@ (local $6 i32) local.get $0 i32.load offset=4 - local.set $5 + local.set $3 local.get $0 i32.load offset=8 i32.const 3 @@ -27311,7 +27367,7 @@ local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 0 i32.lt_s if @@ -27323,10 +27379,10 @@ local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end - local.get $6 + local.get $2 i32.eqz if - local.get $5 + local.get $3 f64.load call $~lib/util/number/dtoa local.set $0 @@ -27337,7 +27393,7 @@ br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.const 9580 i32.load i32.const 1 @@ -27348,77 +27404,79 @@ i32.mul i32.const 28 i32.add - local.tee $2 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + i32.const 0 + local.set $0 loop $for-loop|0 - local.get $3 - local.get $6 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 3 i32.shl - local.get $5 + local.get $3 i32.add f64.load call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $6 + local.get $2 i32.const 3 i32.shl - local.get $5 + local.get $3 i32.add f64.load call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer @@ -27431,6 +27489,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end local.get $0 ) @@ -27452,12 +27512,8 @@ local.set $1 end i32.const -1 - local.set $3 + local.set $2 end - local.get $0 - local.set $2 - local.get $3 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -27477,7 +27533,7 @@ i32.const 0 i32.store local.get $1 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -27491,11 +27547,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 i32.lt_s if - local.get $0 + local.get $2 i32.const -1 i32.eq if (result i32) @@ -27510,11 +27566,11 @@ call $~lib/builtins/abort unreachable end - local.set $0 + local.set $2 else local.get $3 - local.get $0 local.get $1 + local.get $2 i32.add i32.lt_s if @@ -27533,20 +27589,20 @@ local.tee $3 i32.store local.get $3 - local.get $2 + local.get $0 i32.store - local.get $2 + local.get $0 if local.get $3 - local.get $2 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $3 - local.get $0 + local.get $2 i32.store offset=8 local.get $3 + local.get $0 local.get $1 - local.get $2 i32.add i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -36132,13 +36188,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 6 call $~lib/typedarray/Int8Array#constructor local.tee $7 @@ -36176,65 +36232,65 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store local.get $7 i32.load offset=8 - local.set $5 - local.get $1 + local.set $2 + local.get $3 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.store offset=4 local.get $7 i32.load offset=4 - local.set $1 + local.set $5 loop $for-loop|0 - local.get $5 - local.get $6 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if local.get $1 - local.get $6 + local.get $5 i32.add i32.load8_s - local.set $4 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $4 - local.get $6 + local.get $3 + local.get $1 local.get $7 i32.const 3952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.get $2 + local.get $6 i32.add - local.get $4 + local.get $3 i32.store8 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 + local.set $1 br $for-loop|0 end end local.get $8 - local.get $2 + local.get $6 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 @@ -36261,7 +36317,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -36354,13 +36410,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 6 call $~lib/typedarray/Uint8Array#constructor local.tee $7 @@ -36398,65 +36454,65 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store local.get $7 i32.load offset=8 - local.set $5 - local.get $1 + local.set $2 + local.get $3 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.store offset=4 local.get $7 i32.load offset=4 - local.set $1 + local.set $5 loop $for-loop|0 - local.get $5 - local.get $6 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if local.get $1 - local.get $6 + local.get $5 i32.add i32.load8_u - local.set $4 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $4 - local.get $6 + local.get $3 + local.get $1 local.get $7 i32.const 3984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.get $2 + local.get $6 i32.add - local.get $4 + local.get $3 i32.store8 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 + local.set $1 br $for-loop|0 end end local.get $8 - local.get $2 + local.get $6 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 @@ -36483,7 +36539,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -36576,13 +36632,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $7 @@ -36620,65 +36676,65 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store local.get $7 i32.load offset=8 - local.set $5 - local.get $1 + local.set $2 + local.get $3 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.store offset=4 local.get $7 i32.load offset=4 - local.set $1 + local.set $5 loop $for-loop|0 - local.get $5 - local.get $6 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if local.get $1 - local.get $6 + local.get $5 i32.add i32.load8_u - local.set $4 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $4 - local.get $6 + local.get $3 + local.get $1 local.get $7 i32.const 4016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.get $2 + local.get $6 i32.add - local.get $4 + local.get $3 i32.store8 local.get $0 i32.const 1 i32.add local.set $0 end - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 + local.set $1 br $for-loop|0 end end local.get $8 - local.get $2 + local.get $6 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 @@ -36705,7 +36761,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -36862,7 +36918,7 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 local.get $7 i32.load offset=4 @@ -36878,10 +36934,10 @@ local.get $6 i32.add i32.load16_s - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4048 @@ -36891,9 +36947,9 @@ local.get $0 i32.const 1 i32.shl - local.get $5 - i32.add local.get $3 + i32.add + local.get $4 i32.store16 local.get $0 i32.const 1 @@ -36908,7 +36964,7 @@ end end local.get $8 - local.get $5 + local.get $3 local.get $0 i32.const 1 i32.shl @@ -36938,7 +36994,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -37097,7 +37153,7 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 local.get $7 i32.load offset=4 @@ -37113,10 +37169,10 @@ local.get $6 i32.add i32.load16_u - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4080 @@ -37126,9 +37182,9 @@ local.get $0 i32.const 1 i32.shl - local.get $5 - i32.add local.get $3 + i32.add + local.get $4 i32.store16 local.get $0 i32.const 1 @@ -37143,7 +37199,7 @@ end end local.get $8 - local.get $5 + local.get $3 local.get $0 i32.const 1 i32.shl @@ -37173,7 +37229,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -37332,7 +37388,7 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 local.get $7 i32.load offset=4 @@ -37348,10 +37404,10 @@ local.get $6 i32.add i32.load - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4112 @@ -37361,9 +37417,9 @@ local.get $0 i32.const 2 i32.shl - local.get $5 - i32.add local.get $3 + i32.add + local.get $4 i32.store local.get $0 i32.const 1 @@ -37378,7 +37434,7 @@ end end local.get $8 - local.get $5 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -37408,7 +37464,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -37567,7 +37623,7 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 local.get $7 i32.load offset=4 @@ -37583,10 +37639,10 @@ local.get $6 i32.add i32.load - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4144 @@ -37596,9 +37652,9 @@ local.get $0 i32.const 2 i32.shl - local.get $5 - i32.add local.get $3 + i32.add + local.get $4 i32.store local.get $0 i32.const 1 @@ -37613,7 +37669,7 @@ end end local.get $8 - local.get $5 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -37643,7 +37699,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -37722,8 +37778,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -37782,7 +37838,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i64.const 0 i64.store local.get $7 @@ -37790,7 +37846,7 @@ i32.const 3 i32.shr_u local.set $2 - local.get $5 + local.get $3 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new @@ -37802,7 +37858,7 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 local.get $7 i32.load offset=4 @@ -37818,10 +37874,10 @@ local.get $6 i32.add i64.load - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4176 @@ -37831,9 +37887,9 @@ local.get $0 i32.const 3 i32.shl - local.get $5 - i32.add local.get $3 + i32.add + local.get $4 i64.store local.get $0 i32.const 1 @@ -37848,7 +37904,7 @@ end end local.get $8 - local.get $5 + local.get $3 local.get $0 i32.const 3 i32.shl @@ -37878,7 +37934,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -37957,8 +38013,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -38017,7 +38073,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i64.const 0 i64.store local.get $7 @@ -38025,7 +38081,7 @@ i32.const 3 i32.shr_u local.set $2 - local.get $5 + local.get $3 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new @@ -38037,7 +38093,7 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 local.get $7 i32.load offset=4 @@ -38053,10 +38109,10 @@ local.get $6 i32.add i64.load - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4208 @@ -38066,9 +38122,9 @@ local.get $0 i32.const 3 i32.shl - local.get $5 - i32.add local.get $3 + i32.add + local.get $4 i64.store local.get $0 i32.const 1 @@ -38083,7 +38139,7 @@ end end local.get $8 - local.get $5 + local.get $3 local.get $0 i32.const 3 i32.shl @@ -38113,7 +38169,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -38192,8 +38248,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) - (local $4 i32) + (local $3 i32) + (local $4 f32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -38252,7 +38308,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i64.const 0 i64.store local.get $7 @@ -38260,7 +38316,7 @@ i32.const 2 i32.shr_u local.set $2 - local.get $5 + local.get $3 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new @@ -38272,7 +38328,7 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 local.get $7 i32.load offset=4 @@ -38288,10 +38344,10 @@ local.get $6 i32.add f32.load - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4240 @@ -38301,9 +38357,9 @@ local.get $0 i32.const 2 i32.shl - local.get $5 - i32.add local.get $3 + i32.add + local.get $4 f32.store local.get $0 i32.const 1 @@ -38318,7 +38374,7 @@ end end local.get $8 - local.get $5 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -38348,7 +38404,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -38427,8 +38483,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f64) - (local $4 i32) + (local $3 i32) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -38487,7 +38543,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i64.const 0 i64.store local.get $7 @@ -38495,7 +38551,7 @@ i32.const 3 i32.shr_u local.set $2 - local.get $5 + local.get $3 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new @@ -38507,7 +38563,7 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 local.get $7 i32.load offset=4 @@ -38523,10 +38579,10 @@ local.get $6 i32.add f64.load - local.set $3 + local.set $4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $1 local.get $7 i32.const 4272 @@ -38536,9 +38592,9 @@ local.get $0 i32.const 3 i32.shl - local.get $5 - i32.add local.get $3 + i32.add + local.get $4 f64.store local.get $0 i32.const 1 @@ -38553,7 +38609,7 @@ end end local.get $8 - local.get $5 + local.get $3 local.get $0 i32.const 3 i32.shl @@ -38583,7 +38639,7 @@ i32.load offset=4 local.get $8 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -39079,8 +39135,8 @@ ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> (local $0 i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -39103,44 +39159,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i64.const 0 i64.store offset=8 - local.get $4 + local.get $2 i32.const 0 i32.store offset=16 - local.get $4 + local.get $2 i32.const 7616 i32.store - local.get $3 + local.get $2 i32.const 7628 i32.load - local.tee $3 + local.tee $2 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $4 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $4 local.get $0 i32.const 7616 local.get $0 @@ -39154,10 +39209,12 @@ br $for-loop|0 end end - local.get $4 - i32.load offset=4 + i32.const 0 local.set $0 - local.get $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -39174,36 +39231,36 @@ i32.sub local.set $6 loop $while-continue|0 - local.get $1 + local.get $0 local.get $7 i32.lt_u if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $5 i32.add local.tee $8 i64.load - local.set $2 + local.set $1 local.get $8 local.get $6 - local.get $1 + local.get $0 i32.sub i32.const 3 i32.shl - local.get $0 + local.get $5 i32.add local.tee $8 i64.load i64.store local.get $8 - local.get $2 - i64.store local.get $1 + i64.store + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end @@ -39212,14 +39269,14 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $0 call $~lib/typedarray/Int64Array#__get i32.const 7616 - local.get $3 + local.get $2 i32.const 1 i32.sub local.get $0 @@ -39243,7 +39300,7 @@ end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 8 call $~lib/typedarray/Int64Array#subarray local.set $3 @@ -39251,7 +39308,7 @@ local.get $3 i32.store offset=12 i32.const 0 - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $4 @@ -39272,21 +39329,21 @@ i32.sub local.set $5 loop $while-continue|01 - local.get $1 + local.get $0 local.get $6 i32.lt_u if - local.get $1 + local.get $0 i32.const 3 i32.shl local.get $4 i32.add local.tee $7 i64.load - local.set $2 + local.set $1 local.get $7 local.get $5 - local.get $1 + local.get $0 i32.sub i32.const 3 i32.shl @@ -39296,12 +39353,12 @@ i64.load i64.store local.get $7 - local.get $2 - i64.store local.get $1 + i64.store + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|01 end end @@ -39367,8 +39424,8 @@ ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> (local $0 i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -39391,44 +39448,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i64.const 0 i64.store offset=8 - local.get $4 + local.get $2 i32.const 0 i32.store offset=16 - local.get $4 + local.get $2 i32.const 7616 i32.store - local.get $3 + local.get $2 i32.const 7628 i32.load - local.tee $3 + local.tee $2 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 call $~lib/typedarray/Uint64Array#constructor - local.tee $5 + local.tee $4 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $5 + local.get $4 local.get $0 i32.const 7616 local.get $0 @@ -39442,10 +39498,12 @@ br $for-loop|0 end end - local.get $4 - i32.load offset=4 + i32.const 0 local.set $0 - local.get $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -39462,36 +39520,36 @@ i32.sub local.set $6 loop $while-continue|0 - local.get $1 + local.get $0 local.get $7 i32.lt_u if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $5 i32.add local.tee $8 i64.load - local.set $2 + local.set $1 local.get $8 local.get $6 - local.get $1 + local.get $0 i32.sub i32.const 3 i32.shl - local.get $0 + local.get $5 i32.add local.tee $8 i64.load i64.store local.get $8 - local.get $2 - i64.store local.get $1 + i64.store + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end @@ -39500,14 +39558,14 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $0 call $~lib/typedarray/Uint64Array#__get i32.const 7616 - local.get $3 + local.get $2 i32.const 1 i32.sub local.get $0 @@ -39531,7 +39589,7 @@ end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 8 call $~lib/typedarray/Uint64Array#subarray local.set $3 @@ -39539,7 +39597,7 @@ local.get $3 i32.store offset=12 i32.const 0 - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $4 @@ -39560,21 +39618,21 @@ i32.sub local.set $5 loop $while-continue|01 - local.get $1 + local.get $0 local.get $6 i32.lt_u if - local.get $1 + local.get $0 i32.const 3 i32.shl local.get $4 i32.add local.tee $7 i64.load - local.set $2 + local.set $1 local.get $7 local.get $5 - local.get $1 + local.get $0 i32.sub i32.const 3 i32.shl @@ -39584,12 +39642,12 @@ i64.load i64.store local.get $7 - local.get $2 - i64.store local.get $1 + i64.store + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|01 end end @@ -39655,8 +39713,8 @@ ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> (local $0 i32) - (local $1 i32) - (local $2 f32) + (local $1 f32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -39679,44 +39737,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i64.const 0 i64.store offset=8 - local.get $4 + local.get $2 i32.const 0 i32.store offset=16 - local.get $4 + local.get $2 i32.const 7616 i32.store - local.get $3 + local.get $2 i32.const 7628 i32.load - local.tee $3 + local.tee $2 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 call $~lib/typedarray/Float32Array#constructor - local.tee $5 + local.tee $4 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $5 + local.get $4 local.get $0 i32.const 7616 local.get $0 @@ -39730,10 +39787,12 @@ br $for-loop|0 end end - local.get $4 - i32.load offset=4 + i32.const 0 local.set $0 - local.get $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -39750,36 +39809,36 @@ i32.sub local.set $6 loop $while-continue|0 - local.get $1 + local.get $0 local.get $7 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $5 i32.add local.tee $8 f32.load - local.set $2 + local.set $1 local.get $8 local.get $6 - local.get $1 + local.get $0 i32.sub i32.const 2 i32.shl - local.get $0 + local.get $5 i32.add local.tee $8 f32.load f32.store local.get $8 - local.get $2 - f32.store local.get $1 + f32.store + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end @@ -39788,14 +39847,14 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $0 call $~lib/typedarray/Float32Array#__get i32.const 7616 - local.get $3 + local.get $2 i32.const 1 i32.sub local.get $0 @@ -39819,7 +39878,7 @@ end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 8 call $~lib/typedarray/Float32Array#subarray local.set $3 @@ -39827,7 +39886,7 @@ local.get $3 i32.store offset=12 i32.const 0 - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $4 @@ -39848,21 +39907,21 @@ i32.sub local.set $5 loop $while-continue|01 - local.get $1 + local.get $0 local.get $6 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $4 i32.add local.tee $7 f32.load - local.set $2 + local.set $1 local.get $7 local.get $5 - local.get $1 + local.get $0 i32.sub i32.const 2 i32.shl @@ -39872,12 +39931,12 @@ f32.load f32.store local.get $7 - local.get $2 - f32.store local.get $1 + f32.store + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|01 end end @@ -39943,8 +40002,8 @@ ) (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> (local $0 i32) - (local $1 i32) - (local $2 f64) + (local $1 f64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -39967,44 +40026,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i64.const 0 i64.store offset=8 - local.get $4 + local.get $2 i32.const 0 i32.store offset=16 - local.get $4 + local.get $2 i32.const 7616 i32.store - local.get $3 + local.get $2 i32.const 7628 i32.load - local.tee $3 + local.tee $2 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 call $~lib/typedarray/Float64Array#constructor - local.tee $5 + local.tee $4 i32.store offset=8 loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $0 i32.const 7616 local.get $0 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $5 + local.get $4 local.get $0 i32.const 7616 local.get $0 @@ -40018,10 +40076,12 @@ br $for-loop|0 end end - local.get $4 - i32.load offset=4 + i32.const 0 local.set $0 - local.get $4 + local.get $3 + i32.load offset=4 + local.set $5 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -40038,36 +40098,36 @@ i32.sub local.set $6 loop $while-continue|0 - local.get $1 + local.get $0 local.get $7 i32.lt_u if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $5 i32.add local.tee $8 f64.load - local.set $2 + local.set $1 local.get $8 local.get $6 - local.get $1 + local.get $0 i32.sub i32.const 3 i32.shl - local.get $0 + local.get $5 i32.add local.tee $8 f64.load f64.store local.get $8 - local.get $2 - f64.store local.get $1 + f64.store + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end @@ -40076,14 +40136,14 @@ local.set $0 loop $for-loop|1 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $0 call $~lib/typedarray/Float64Array#__get i32.const 7616 - local.get $3 + local.get $2 i32.const 1 i32.sub local.get $0 @@ -40107,7 +40167,7 @@ end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 4 i32.const 8 call $~lib/typedarray/Float64Array#subarray @@ -40116,7 +40176,7 @@ local.get $3 i32.store offset=12 i32.const 0 - local.set $1 + local.set $0 local.get $3 i32.load offset=4 local.set $4 @@ -40137,21 +40197,21 @@ i32.sub local.set $5 loop $while-continue|01 - local.get $1 + local.get $0 local.get $6 i32.lt_u if - local.get $1 + local.get $0 i32.const 3 i32.shl local.get $4 i32.add local.tee $7 f64.load - local.set $2 + local.set $1 local.get $7 local.get $5 - local.get $1 + local.get $0 i32.sub i32.const 3 i32.shl @@ -40161,12 +40221,12 @@ f64.load f64.store local.get $7 - local.get $2 - f64.store local.get $1 + f64.store + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|01 end end @@ -40353,15 +40413,14 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f64) + (local $2 f32) + (local $3 f64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -40378,79 +40437,79 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $6 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $6 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.tee $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int8Array#constructor - local.tee $9 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $9 + local.get $4 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -40461,62 +40520,62 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=16 - local.get $9 + local.get $4 local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner0 - local.get $9 + block $folding-inner1 + local.get $4 i32.load offset=8 i32.const 11100 i32.load i32.const 3 i32.add i32.lt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 3 i32.add - local.set $5 + local.set $8 i32.const 11092 i32.load - local.set $10 + local.set $5 i32.const 11100 i32.load - local.set $6 + local.set $9 loop $for-loop|0 - local.get $1 - local.get $6 + local.get $0 + local.get $9 i32.lt_s if - local.get $1 - local.get $5 + local.get $0 + local.get $8 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $10 + local.get $5 i32.add f32.load - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f32.sub f32.const 0 f32.eq if (result i32) - local.get $3 + local.get $2 i32.trunc_f32_s else i32.const 0 end i32.store8 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -40525,80 +40584,82 @@ i32.const 15 i32.const 11392 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $9 - local.get $7 + local.get $4 + local.get $6 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 i32.const 15 i32.const 11424 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 - local.get $9 + local.get $4 i32.load offset=8 i32.const 11196 i32.load i32.const 2 i32.add i32.lt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 2 i32.add - local.set $1 + local.set $5 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $8 + i32.const 0 + local.set $0 loop $for-loop|05 - local.get $2 - local.get $6 + local.get $0 + local.get $8 i32.lt_s if - local.get $1 - local.get $2 + local.get $0 + local.get $5 i32.add - local.get $2 + local.get $0 i32.const 3 i32.shl - local.get $5 + local.get $6 i32.add f64.load - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f64.sub f64.const 0 f64.eq if (result i32) - local.get $4 + local.get $3 i32.trunc_f64_s else i32.const 0 end i32.store8 - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|05 end end @@ -40607,23 +40668,23 @@ i32.const 15 i32.const 11456 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $9 - local.get $8 + local.get $4 + local.get $7 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $9 - local.get $0 + local.get $4 + local.get $1 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $9 + local.get $4 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -40634,7 +40695,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer @@ -40742,15 +40803,14 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f64) + (local $2 f32) + (local $3 f64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -40767,79 +40827,79 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $6 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $6 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.tee $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8Array#constructor - local.tee $9 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $9 + local.get $4 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -40850,62 +40910,62 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=16 - local.get $9 + local.get $4 local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner0 - local.get $9 + block $folding-inner1 + local.get $4 i32.load offset=8 i32.const 11100 i32.load i32.const 3 i32.add i32.lt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 3 i32.add - local.set $5 + local.set $8 i32.const 11092 i32.load - local.set $10 + local.set $5 i32.const 11100 i32.load - local.set $6 + local.set $9 loop $for-loop|0 - local.get $1 - local.get $6 + local.get $0 + local.get $9 i32.lt_s if - local.get $1 - local.get $5 + local.get $0 + local.get $8 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $10 + local.get $5 i32.add f32.load - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f32.sub f32.const 0 f32.eq if (result i32) - local.get $3 + local.get $2 i32.trunc_f32_u else i32.const 0 end i32.store8 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -40914,80 +40974,82 @@ i32.const 63 i32.const 11600 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $9 - local.get $7 + local.get $4 + local.get $6 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 i32.const 63 i32.const 11632 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 - local.get $9 + local.get $4 i32.load offset=8 i32.const 11196 i32.load i32.const 2 i32.add i32.lt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 2 i32.add - local.set $1 + local.set $5 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $8 + i32.const 0 + local.set $0 loop $for-loop|05 - local.get $2 - local.get $6 + local.get $0 + local.get $8 i32.lt_s if - local.get $1 - local.get $2 + local.get $0 + local.get $5 i32.add - local.get $2 + local.get $0 i32.const 3 i32.shl - local.get $5 + local.get $6 i32.add f64.load - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f64.sub f64.const 0 f64.eq if (result i32) - local.get $4 + local.get $3 i32.trunc_f64_u else i32.const 0 end i32.store8 - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|05 end end @@ -40996,23 +41058,23 @@ i32.const 63 i32.const 11664 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $9 - local.get $8 + local.get $4 + local.get $7 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $9 - local.get $0 + local.get $4 + local.get $1 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $9 + local.get $4 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -41023,7 +41085,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer @@ -41130,19 +41192,16 @@ ) (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (local $0 i32) - (local $1 i32) - (local $2 i32) + (local $1 f32) + (local $2 f64) (local $3 i32) - (local $4 f32) - (local $5 f64) + (local $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -41159,97 +41218,97 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $3 i64.const 0 i64.store - local.get $6 + local.get $3 i64.const 0 i64.store offset=8 - local.get $6 + local.get $3 i32.const 0 i32.store offset=16 - local.get $6 + local.get $3 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $4 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $6 + local.get $4 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $7 + local.tee $5 i32.store offset=4 - local.get $7 + local.get $5 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $7 + local.get $5 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $10 + local.tee $6 i32.store offset=8 - local.get $10 + local.get $6 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $10 + local.get $6 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $10 + local.get $6 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $11 + local.tee $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 block $folding-inner0 + local.get $7 + i32.load offset=8 i32.const 11020 i32.load - local.get $11 - i32.load offset=8 - i32.gt_s + i32.lt_s br_if $folding-inner0 - local.get $11 + local.get $7 i32.load offset=4 local.set $8 i32.const 11012 i32.load - local.set $12 + local.set $9 i32.const 11020 i32.load - local.set $13 + local.set $10 loop $for-loop|0 local.get $0 - local.get $13 + local.get $10 i32.lt_s if local.get $0 @@ -41259,16 +41318,16 @@ local.get $0 i32.const 2 i32.shl - local.get $12 + local.get $9 i32.add i32.load - local.tee $9 + local.tee $3 i32.sub i32.const 31 i32.shr_s - local.get $9 + local.get $3 i32.or - local.get $9 + local.get $3 i32.const 31 i32.shr_s i32.const -1 @@ -41291,13 +41350,13 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $11 + local.get $7 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - local.get $11 + local.get $7 i32.load offset=8 i32.const 11100 i32.load @@ -41305,40 +41364,42 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $11 + local.get $7 i32.load offset=4 i32.const 3 i32.add - local.set $0 + local.set $3 i32.const 11092 i32.load local.set $8 i32.const 11100 i32.load local.set $9 + i32.const 0 + local.set $0 loop $for-loop|05 - local.get $1 + local.get $0 local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $3 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $8 i32.add f32.load - local.tee $4 - local.get $4 + local.tee $1 + local.get $1 f32.sub f32.const 0 f32.eq if (result i32) f32.const 0 f32.const 255 - local.get $4 + local.get $1 f32.min f32.max i32.trunc_f32_u @@ -41346,10 +41407,10 @@ i32.const 0 end i32.store8 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|05 end end @@ -41362,11 +41423,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $11 + local.get $7 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $11 - local.get $6 + local.get $7 + local.get $4 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 10 @@ -41378,13 +41439,13 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $11 + local.get $7 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 - local.get $11 + local.get $7 i32.load offset=8 i32.const 11196 i32.load @@ -41392,40 +41453,42 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $11 + local.get $7 i32.load offset=4 i32.const 2 i32.add - local.set $0 + local.set $3 i32.const 11188 i32.load - local.set $1 + local.set $4 i32.const 11196 i32.load - local.set $6 + local.set $8 + i32.const 0 + local.set $0 loop $for-loop|011 - local.get $2 - local.get $6 + local.get $0 + local.get $8 i32.lt_s if local.get $0 - local.get $2 + local.get $3 i32.add - local.get $2 + local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $4 i32.add f64.load - local.tee $5 - local.get $5 + local.tee $2 + local.get $2 f64.sub f64.const 0 f64.eq if (result i32) f64.const 0 f64.const 255 - local.get $5 + local.get $2 f64.min f64.max i32.trunc_f64_u @@ -41433,10 +41496,10 @@ i32.const 0 end i32.store8 - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|011 end end @@ -41449,20 +41512,20 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $11 + local.get $7 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $11 local.get $7 + local.get $5 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $11 - local.get $10 + local.get $7 + local.get $6 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $11 + local.get $7 i32.load offset=8 i32.const 11276 i32.load @@ -41470,28 +41533,30 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $11 + local.get $7 i32.load offset=4 i32.const 7 i32.add - local.set $0 + local.set $3 i32.const 11268 i32.load - local.set $1 + local.set $4 i32.const 11276 i32.load - local.set $2 + local.set $5 + i32.const 0 + local.set $0 loop $for-loop|017 - local.get $2 - local.get $3 - i32.gt_s + local.get $0 + local.get $5 + i32.lt_s if local.get $0 local.get $3 i32.add i32.const 255 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.add i32.load8_s local.tee $6 @@ -41507,10 +41572,10 @@ i32.xor i32.and i32.store8 - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|017 end end @@ -41523,7 +41588,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $11 + local.get $7 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer @@ -41592,9 +41657,9 @@ i32.add i32.load16_s local.tee $4 + local.get $5 local.get $1 i32.load offset=4 - local.get $5 i32.add i32.load16_s local.tee $5 @@ -41636,15 +41701,14 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f64) + (local $2 f32) + (local $3 f64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -41661,79 +41725,79 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $6 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $6 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.tee $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int16Array#constructor - local.tee $9 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $9 + local.get $4 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -41744,66 +41808,66 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=16 - local.get $9 + local.get $4 local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner0 + block $folding-inner1 i32.const 11100 i32.load i32.const 3 i32.add - local.get $9 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 6 i32.add - local.set $5 + local.set $8 i32.const 11092 i32.load - local.set $10 + local.set $5 i32.const 11100 i32.load - local.set $6 + local.set $9 loop $for-loop|0 - local.get $1 - local.get $6 + local.get $0 + local.get $9 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $5 + local.get $8 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $10 + local.get $5 i32.add f32.load - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f32.sub f32.const 0 f32.eq if (result i32) - local.get $3 + local.get $2 i32.trunc_f32_s else i32.const 0 end i32.store16 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -41812,27 +41876,27 @@ i32.const 64 i32.const 12048 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $9 - local.get $7 + local.get $4 + local.get $6 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 i32.const 64 i32.const 12096 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -41841,55 +41905,57 @@ i32.load i32.const 2 i32.add - local.get $9 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 4 i32.add - local.set $1 + local.set $5 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $8 + i32.const 0 + local.set $0 loop $for-loop|05 - local.get $2 - local.get $6 + local.get $0 + local.get $8 i32.lt_s if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $5 i32.add - local.get $2 + local.get $0 i32.const 3 i32.shl - local.get $5 + local.get $6 i32.add f64.load - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f64.sub f64.const 0 f64.eq if (result i32) - local.get $4 + local.get $3 i32.trunc_f64_s else i32.const 0 end i32.store16 - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|05 end end @@ -41898,23 +41964,23 @@ i32.const 64 i32.const 12144 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $9 - local.get $8 + local.get $4 + local.get $7 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $9 - local.get $0 + local.get $4 + local.get $1 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $9 + local.get $4 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -41925,7 +41991,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer @@ -41994,9 +42060,9 @@ i32.add i32.load16_u local.tee $4 + local.get $5 local.get $1 i32.load offset=4 - local.get $5 i32.add i32.load16_u local.tee $5 @@ -42038,15 +42104,14 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f64) + (local $2 f32) + (local $3 f64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42063,79 +42128,79 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $6 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $6 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.tee $7 i32.store offset=4 - local.get $8 + local.get $7 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $7 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint16Array#constructor - local.tee $9 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $9 + local.get $4 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -42146,66 +42211,66 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=16 - local.get $9 + local.get $4 local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner0 + block $folding-inner1 i32.const 11100 i32.load i32.const 3 i32.add - local.get $9 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 6 i32.add - local.set $5 + local.set $8 i32.const 11092 i32.load - local.set $10 + local.set $5 i32.const 11100 i32.load - local.set $6 + local.set $9 loop $for-loop|0 - local.get $1 - local.get $6 + local.get $0 + local.get $9 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $5 + local.get $8 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $10 + local.get $5 i32.add f32.load - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f32.sub f32.const 0 f32.eq if (result i32) - local.get $3 + local.get $2 i32.trunc_f32_u else i32.const 0 end i32.store16 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -42214,27 +42279,27 @@ i32.const 65 i32.const 12336 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $9 - local.get $7 + local.get $4 + local.get $6 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 i32.const 65 i32.const 12384 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -42243,55 +42308,57 @@ i32.load i32.const 2 i32.add - local.get $9 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 4 i32.add - local.set $1 + local.set $5 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $8 + i32.const 0 + local.set $0 loop $for-loop|05 - local.get $2 - local.get $6 + local.get $0 + local.get $8 i32.lt_s if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $5 i32.add - local.get $2 + local.get $0 i32.const 3 i32.shl - local.get $5 + local.get $6 i32.add f64.load - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f64.sub f64.const 0 f64.eq if (result i32) - local.get $4 + local.get $3 i32.trunc_f64_u else i32.const 0 end i32.store16 - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|05 end end @@ -42300,23 +42367,23 @@ i32.const 65 i32.const 12432 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $9 - local.get $8 + local.get $4 + local.get $7 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $9 - local.get $0 + local.get $4 + local.get $1 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $9 + local.get $4 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -42327,7 +42394,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer @@ -42396,9 +42463,9 @@ i32.add i32.load local.tee $4 + local.get $5 local.get $1 i32.load offset=4 - local.get $5 i32.add i32.load local.tee $5 @@ -42440,16 +42507,15 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f64) + (local $2 f32) + (local $3 f64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42466,29 +42532,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -42516,29 +42582,29 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int32Array#constructor - local.tee $9 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $9 + local.get $4 i32.const 11008 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -42547,70 +42613,70 @@ i32.const 16 i32.const 12528 call $~lib/rt/__newArray - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=16 - local.get $9 - local.get $6 + local.get $4 + local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner0 + block $folding-inner1 i32.const 11100 i32.load i32.const 3 i32.add - local.get $9 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 12 i32.add - local.set $6 + local.set $5 i32.const 11092 i32.load - local.set $10 + local.set $9 i32.const 11100 i32.load - local.set $7 + local.set $10 loop $for-loop|0 - local.get $2 - local.get $7 + local.get $0 + local.get $10 i32.lt_s if - local.get $2 + local.get $0 i32.const 2 i32.shl - local.tee $11 - local.get $10 + local.tee $6 + local.get $9 i32.add f32.load - local.set $3 + local.set $2 + local.get $5 local.get $6 - local.get $11 i32.add - local.get $3 - local.get $3 + local.get $2 + local.get $2 f32.sub f32.const 0 f32.eq if (result i32) - local.get $3 + local.get $2 i32.trunc_f32_s else i32.const 0 end i32.store - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end @@ -42619,27 +42685,27 @@ i32.const 16 i32.const 12640 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 - local.get $9 - local.get $2 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $9 - local.get $5 + local.get $4 + local.get $7 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 2 i32.const 16 i32.const 12704 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 - local.get $9 - local.get $2 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -42648,55 +42714,57 @@ i32.load i32.const 2 i32.add - local.get $9 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 8 i32.add - local.set $2 + local.set $5 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $7 + i32.const 0 + local.set $0 loop $for-loop|05 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $5 + local.get $6 i32.add f64.load - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f64.sub f64.const 0 f64.eq if (result i32) - local.get $4 + local.get $3 i32.trunc_f64_s else i32.const 0 end i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|05 end end @@ -42705,23 +42773,23 @@ i32.const 16 i32.const 12768 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - local.get $9 + local.get $4 local.get $8 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - local.get $9 - local.get $0 + local.get $4 + local.get $1 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $9 + local.get $4 call $~lib/typedarray/Int32Array#set<~lib/array/Array> i32.const 10 i32.const 2 @@ -42732,7 +42800,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer @@ -42801,9 +42869,9 @@ i32.add i32.load local.tee $4 + local.get $5 local.get $1 i32.load offset=4 - local.get $5 i32.add i32.load local.tee $5 @@ -42845,16 +42913,15 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f32) - (local $4 f64) + (local $2 f32) + (local $3 f64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42871,29 +42938,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $7 i32.store - local.get $5 + local.get $7 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $7 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set @@ -42921,29 +42988,29 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint32Array#constructor - local.tee $9 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $9 + local.get $4 i32.const 11008 i32.const 0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -42952,70 +43019,70 @@ i32.const 66 i32.const 12896 call $~lib/rt/__newArray - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=16 - local.get $9 - local.get $6 + local.get $4 + local.get $5 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner0 + block $folding-inner1 i32.const 11100 i32.load i32.const 3 i32.add - local.get $9 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 12 i32.add - local.set $6 + local.set $5 i32.const 11092 i32.load - local.set $10 + local.set $9 i32.const 11100 i32.load - local.set $7 + local.set $10 loop $for-loop|0 - local.get $2 - local.get $7 + local.get $0 + local.get $10 i32.lt_s if - local.get $2 + local.get $0 i32.const 2 i32.shl - local.tee $11 - local.get $10 + local.tee $6 + local.get $9 i32.add f32.load - local.set $3 + local.set $2 + local.get $5 local.get $6 - local.get $11 i32.add - local.get $3 - local.get $3 + local.get $2 + local.get $2 f32.sub f32.const 0 f32.eq if (result i32) - local.get $3 + local.get $2 i32.trunc_f32_u else i32.const 0 end i32.store - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end @@ -43024,27 +43091,27 @@ i32.const 66 i32.const 13008 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 - local.get $9 - local.get $2 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $9 - local.get $5 + local.get $4 + local.get $7 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 2 i32.const 66 i32.const 13072 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 - local.get $9 - local.get $2 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -43053,55 +43120,57 @@ i32.load i32.const 2 i32.add - local.get $9 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $9 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 8 i32.add - local.set $2 + local.set $5 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $7 + i32.const 0 + local.set $0 loop $for-loop|05 - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $5 + local.get $6 i32.add f64.load - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f64.sub f64.const 0 f64.eq if (result i32) - local.get $4 + local.get $3 i32.trunc_f64_u else i32.const 0 end i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|05 end end @@ -43110,23 +43179,23 @@ i32.const 66 i32.const 13136 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $9 - local.get $1 + local.get $4 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - local.get $9 + local.get $4 local.get $8 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> - local.get $9 - local.get $0 + local.get $4 + local.get $1 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $9 + local.get $4 call $~lib/typedarray/Int32Array#set<~lib/array/Array> i32.const 10 i32.const 2 @@ -43137,7 +43206,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer @@ -43207,9 +43276,9 @@ i32.add i64.load local.tee $5 + local.get $4 local.get $1 i32.load offset=4 - local.get $4 i32.add i64.load local.tee $6 @@ -43251,15 +43320,14 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 f32) + (local $2 f64) + (local $3 f32) + (local $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43288,128 +43356,128 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $5 i32.store - local.get $7 + local.get $5 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $6 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $6 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $6 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int64Array#constructor - local.tee $8 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $8 + local.get $4 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 i32.const 3 i32.const 67 i32.const 13264 call $~lib/rt/__newArray - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=16 - local.get $8 - local.get $6 + local.get $4 + local.get $7 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner0 + block $folding-inner1 i32.const 11100 i32.load i32.const 3 i32.add - local.get $8 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $8 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 24 i32.add - local.set $9 + local.set $7 i32.const 11092 i32.load - local.set $10 + local.set $8 i32.const 11100 i32.load - local.set $6 + local.set $9 loop $for-loop|0 local.get $0 - local.get $6 + local.get $9 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.get $9 + local.get $7 i32.add local.get $0 i32.const 2 i32.shl - local.get $10 + local.get $8 i32.add f32.load - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 f32.sub f32.const 0 f32.eq if (result i64) - local.get $5 + local.get $3 i64.trunc_f32_s else i64.const 0 @@ -43431,11 +43499,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $8 - local.get $7 + local.get $4 + local.get $5 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 3 @@ -43446,7 +43514,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer @@ -43456,55 +43524,57 @@ i32.load i32.const 2 i32.add - local.get $8 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $8 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 16 i32.add - local.set $0 + local.set $5 i32.const 11188 i32.load - local.set $6 + local.set $7 i32.const 11196 i32.load - local.set $7 + local.set $8 + i32.const 0 + local.set $0 loop $for-loop|05 - local.get $3 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if - local.get $6 - local.get $3 + local.get $0 i32.const 3 i32.shl local.tee $9 + local.get $7 i32.add f64.load - local.set $4 - local.get $0 + local.set $2 + local.get $5 local.get $9 i32.add - local.get $4 - local.get $4 + local.get $2 + local.get $2 f64.sub f64.const 0 f64.eq if (result i64) - local.get $4 + local.get $2 i64.trunc_f64_s else i64.const 0 end i64.store - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|05 end end @@ -43517,19 +43587,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - local.get $8 - local.get $1 + local.get $4 + local.get $6 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $8 - local.get $2 + local.get $4 + local.get $1 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $8 + local.get $4 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 i32.const 3 @@ -43540,7 +43610,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer @@ -43610,9 +43680,9 @@ i32.add i64.load local.tee $5 + local.get $4 local.get $1 i32.load offset=4 - local.get $4 i32.add i64.load local.tee $6 @@ -43654,15 +43724,14 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 f32) + (local $2 f64) + (local $3 f32) + (local $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43691,128 +43760,128 @@ local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $5 i32.store - local.get $7 + local.get $5 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $6 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $6 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $6 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint64Array#constructor - local.tee $8 + local.tee $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 i32.store offset=16 - local.get $8 + local.get $4 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 i32.const 3 i32.const 68 i32.const 13872 call $~lib/rt/__newArray - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=16 - local.get $8 - local.get $6 + local.get $4 + local.get $7 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - block $folding-inner0 + block $folding-inner1 i32.const 11100 i32.load i32.const 3 i32.add - local.get $8 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $8 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 24 i32.add - local.set $9 + local.set $7 i32.const 11092 i32.load - local.set $10 + local.set $8 i32.const 11100 i32.load - local.set $6 + local.set $9 loop $for-loop|0 local.get $0 - local.get $6 + local.get $9 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.get $9 + local.get $7 i32.add local.get $0 i32.const 2 i32.shl - local.get $10 + local.get $8 i32.add f32.load - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 f32.sub f32.const 0 f32.eq if (result i64) - local.get $5 + local.get $3 i64.trunc_f32_u else i64.const 0 @@ -43834,11 +43903,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $8 - local.get $7 + local.get $4 + local.get $5 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 3 @@ -43849,7 +43918,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer @@ -43859,55 +43928,57 @@ i32.load i32.const 2 i32.add - local.get $8 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner0 - local.get $8 + br_if $folding-inner1 + local.get $4 i32.load offset=4 i32.const 16 i32.add - local.set $0 + local.set $5 i32.const 11188 i32.load - local.set $6 + local.set $7 i32.const 11196 i32.load - local.set $7 + local.set $8 + i32.const 0 + local.set $0 loop $for-loop|05 - local.get $3 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if - local.get $6 - local.get $3 + local.get $0 i32.const 3 i32.shl local.tee $9 + local.get $7 i32.add f64.load - local.set $4 - local.get $0 + local.set $2 + local.get $5 local.get $9 i32.add - local.get $4 - local.get $4 + local.get $2 + local.get $2 f64.sub f64.const 0 f64.eq if (result i64) - local.get $4 + local.get $2 i64.trunc_f64_u else i64.const 0 end i64.store - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|05 end end @@ -43920,19 +43991,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - local.get $8 - local.get $1 + local.get $4 + local.get $6 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> - local.get $8 - local.get $2 + local.get $4 + local.get $1 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - local.get $8 + local.get $4 call $~lib/typedarray/Int64Array#set<~lib/array/Array> i32.const 10 i32.const 3 @@ -43943,7 +44014,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $4 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer @@ -44013,9 +44084,9 @@ i32.add f32.load local.tee $5 + local.get $4 local.get $1 i32.load offset=4 - local.get $4 i32.add f32.load local.tee $6 @@ -44066,8 +44137,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -44084,74 +44153,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i64.const 0 i64.store - local.get $5 + local.get $3 i64.const 0 i64.store offset=8 - local.get $5 + local.get $3 i32.const 0 i32.store offset=16 - local.get $5 + local.get $3 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $3 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $3 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $4 i32.store offset=4 - local.get $6 + local.get $4 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $7 + local.tee $5 i32.store offset=8 - local.get $7 + local.get $5 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $7 + local.get $5 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $7 + local.get $5 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Float32Array#constructor - local.tee $10 + local.tee $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -44159,42 +44228,42 @@ block $folding-inner0 i32.const 11020 i32.load - local.get $10 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 + local.get $8 i32.load offset=4 - local.set $8 + local.set $6 i32.const 11012 i32.load - local.set $11 + local.set $9 i32.const 11020 i32.load - local.set $9 + local.set $10 loop $for-loop|0 - local.get $4 - local.get $9 + local.get $2 + local.get $10 i32.lt_s if - local.get $8 - local.get $4 + local.get $2 i32.const 2 i32.shl - local.tee $12 + local.tee $7 + local.get $6 i32.add - local.get $11 - local.get $12 + local.get $7 + local.get $9 i32.add i32.load f32.convert_i32_s f32.store - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|0 end end @@ -44203,17 +44272,17 @@ i32.const 61 i32.const 14480 call $~lib/rt/__newArray - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=16 - local.get $10 - local.get $4 + local.get $8 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - local.get $10 + local.get $8 i32.const 11088 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -44222,52 +44291,52 @@ i32.const 61 i32.const 14592 call $~lib/rt/__newArray - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=16 - local.get $10 - local.get $4 + local.get $8 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $5 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $10 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 + local.get $8 i32.load offset=4 i32.const 24 i32.add - local.set $4 - local.get $5 + local.set $2 + local.get $3 i32.load offset=4 - local.set $8 - local.get $5 + local.set $6 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $5 + local.set $3 loop $for-loop|02 local.get $0 - local.get $5 + local.get $3 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $2 i32.add local.get $0 i32.const 3 i32.shl - local.get $8 + local.get $6 i32.add i64.load f32.convert_i64_s @@ -44288,29 +44357,29 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $10 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $6 + local.get $4 i32.load offset=8 - local.get $10 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 + local.get $8 i32.load offset=4 local.set $0 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $2 + local.get $4 i32.load offset=8 - local.set $5 + local.set $3 loop $for-loop|06 local.get $1 - local.get $5 + local.get $3 i32.lt_s if local.get $1 @@ -44319,7 +44388,7 @@ local.get $0 i32.add local.get $1 - local.get $4 + local.get $2 i32.add i32.load8_u f32.convert_i32_u @@ -44331,53 +44400,55 @@ br $for-loop|06 end end - local.get $7 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $10 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 + local.get $8 i32.load offset=4 i32.const 16 i32.add local.set $0 - local.get $7 + local.get $5 i32.load offset=4 - local.set $1 - local.get $7 + local.set $2 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $4 + local.set $3 + i32.const 0 + local.set $1 loop $for-loop|010 - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl local.get $0 i32.add - local.get $2 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.load16_s f32.convert_i32_s f32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|010 end end @@ -44388,43 +44459,45 @@ i32.load i32.const 7 i32.add - local.get $10 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 + local.get $8 i32.load offset=4 i32.const 28 i32.add local.set $0 i32.const 11268 i32.load - local.set $1 + local.set $2 i32.const 11276 i32.load - local.set $2 + local.set $3 + i32.const 0 + local.set $1 loop $for-loop|016 - local.get $2 + local.get $1 local.get $3 - i32.gt_s + i32.lt_s if - local.get $3 + local.get $1 i32.const 2 i32.shl local.get $0 i32.add local.get $1 - local.get $3 + local.get $2 i32.add i32.load8_s f32.convert_i32_s f32.store - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|016 end end @@ -44437,7 +44510,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $10 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer @@ -44507,9 +44580,9 @@ i32.add f64.load local.tee $5 + local.get $4 local.get $1 i32.load offset=4 - local.get $4 i32.add f64.load local.tee $6 @@ -44556,10 +44629,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -44576,74 +44645,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $2 i64.const 0 i64.store - local.get $6 + local.get $2 i64.const 0 i64.store offset=8 - local.get $6 + local.get $2 i32.const 0 i32.store offset=16 - local.get $6 + local.get $2 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $9 + local.tee $2 i32.store - local.get $9 + local.get $2 i32.const 0 i64.const 7 call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $2 i32.const 1 i64.const 8 call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $2 i32.const 2 i64.const 9 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $3 i32.store offset=4 - local.get $6 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $7 + local.tee $4 i32.store offset=8 - local.get $7 + local.get $4 i32.const 0 i32.const 1000 call $~lib/typedarray/Int16Array#__set - local.get $7 + local.get $4 i32.const 1 i32.const 1001 call $~lib/typedarray/Int16Array#__set - local.get $7 + local.get $4 i32.const 2 i32.const 1002 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Float64Array#constructor - local.tee $10 + local.tee $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -44651,43 +44720,43 @@ block $folding-inner0 i32.const 11020 i32.load - local.get $10 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 + local.get $5 i32.load offset=4 - local.set $11 + local.set $6 i32.const 11012 i32.load - local.set $12 + local.set $7 i32.const 11020 i32.load local.set $8 loop $for-loop|0 - local.get $0 + local.get $1 local.get $8 i32.lt_s if - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $11 + local.get $6 i32.add - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $12 + local.get $7 i32.add i32.load f64.convert_i32_s f64.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -44696,12 +44765,12 @@ i32.const 62 i32.const 14784 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $10 - local.get $0 + local.get $5 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -44710,37 +44779,39 @@ i32.load i32.const 3 i32.add - local.get $10 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 + local.get $5 i32.load offset=4 i32.const 24 i32.add - local.set $0 + local.set $6 i32.const 11092 i32.load - local.set $8 + local.set $7 i32.const 11100 i32.load - local.set $11 + local.set $8 + i32.const 0 + local.set $1 loop $for-loop|05 local.get $1 - local.get $11 + local.get $8 i32.lt_s if local.get $1 i32.const 3 i32.shl - local.get $0 + local.get $6 i32.add local.get $1 i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add f32.load f64.promote_f32 @@ -44757,59 +44828,61 @@ i32.const 62 i32.const 14944 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $10 - local.get $0 + local.get $5 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $9 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $10 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 + local.get $5 i32.load offset=4 i32.const 48 i32.add - local.set $0 - local.get $9 + local.set $6 + local.get $2 i32.load offset=4 - local.set $1 - local.get $9 + local.set $7 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $8 + local.set $2 + i32.const 0 + local.set $1 loop $for-loop|09 - local.get $5 - local.get $8 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - local.get $5 + local.get $1 i32.const 3 i32.shl - local.tee $9 + local.tee $8 + local.get $6 i32.add - local.get $1 - local.get $9 + local.get $7 + local.get $8 i32.add i64.load f64.convert_i64_s f64.store - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|09 end end @@ -44818,100 +44891,102 @@ i32.const 62 i32.const 15056 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $10 - local.get $0 + local.get $5 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $6 + local.get $3 i32.load offset=8 - local.get $10 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 - i32.load offset=4 - local.set $0 - local.get $6 + local.get $5 i32.load offset=4 local.set $1 - local.get $6 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 i32.load offset=8 - local.set $5 + local.set $3 loop $for-loop|013 - local.get $2 - local.get $5 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 + local.get $0 i32.const 3 i32.shl - local.get $0 - i32.add local.get $1 + i32.add + local.get $0 local.get $2 i32.add i32.load8_u f64.convert_i32_u f64.store - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|013 end end - local.get $7 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $10 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 + local.get $5 i32.load offset=4 i32.const 32 i32.add - local.set $0 - local.get $7 - i32.load offset=4 local.set $1 - local.get $7 + local.get $4 + i32.load offset=4 + local.set $2 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $3 + i32.const 0 + local.set $0 loop $for-loop|017 - local.get $2 + local.get $0 local.get $3 - i32.gt_s + i32.lt_s if - local.get $3 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $1 i32.add - local.get $3 + local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.load16_s f64.convert_i32_s f64.store - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|017 end end @@ -44922,43 +44997,45 @@ i32.load i32.const 7 i32.add - local.get $10 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $10 + local.get $5 i32.load offset=4 i32.const 56 i32.add - local.set $0 + local.set $1 i32.const 11268 i32.load - local.set $1 + local.set $2 i32.const 11276 i32.load - local.set $2 + local.set $3 + i32.const 0 + local.set $0 loop $for-loop|023 - local.get $2 - local.get $4 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $4 + local.get $0 i32.const 3 i32.shl - local.get $0 - i32.add local.get $1 - local.get $4 + i32.add + local.get $0 + local.get $2 i32.add i32.load8_s f64.convert_i32_s f64.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|023 end end @@ -44971,7 +45048,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $10 + local.get $5 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer @@ -44993,72 +45070,17 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) - (local $6 i32) - (local $7 f64) - (local $8 i32) + (local $5 i32) + (local $6 f32) + (local $7 i32) + (local $8 f64) (local $9 i32) - (local $10 i64) - (local $11 i32) + (local $10 i32) + (local $11 i64) (local $12 i32) - (local $13 i32) - (local $14 i64) - (local $15 i32) - (local $16 f32) - (local $17 f64) - (local $18 i32) - (local $19 i32) - (local $20 i32) - (local $21 i32) - (local $22 i32) - (local $23 i32) - (local $24 i32) - (local $25 i32) - (local $26 i32) - (local $27 i32) - (local $28 i32) - (local $29 i32) - (local $30 i32) - (local $31 i32) - (local $32 i32) - (local $33 i32) - (local $34 i32) - (local $35 i32) - (local $36 i32) - (local $37 i32) - (local $38 i32) - (local $39 i32) - (local $40 i32) - (local $41 i32) - (local $42 i32) - (local $43 i32) - (local $44 i32) - (local $45 i32) - (local $46 i32) - (local $47 i32) - (local $48 i32) - (local $49 i32) - (local $50 i32) - (local $51 i32) - (local $52 i32) - (local $53 i32) - (local $54 i32) - (local $55 i32) - (local $56 i32) - (local $57 i32) - (local $58 i32) - (local $59 i32) - (local $60 i32) - (local $61 i32) - (local $62 i64) - (local $63 i64) - (local $64 i64) - (local $65 f32) - (local $66 f64) - (local $67 i32) - (local $68 i32) - (local $69 i32) - (local $70 i32) + (local $13 i64) + (local $14 f32) + (local $15 f64) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub @@ -45084,11 +45106,11 @@ block $folding-inner23 block $folding-inner22 block $folding-inner21 - block $folding-inner17 + block $folding-inner19 block $folding-inner16 block $folding-inner20 - block $folding-inner19 - block $folding-inner18 + block $folding-inner18 + block $folding-inner17 block $folding-inner15 block $folding-inner14 block $folding-inner13 @@ -45187,7 +45209,7 @@ i32.load offset=4 local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -45744,65 +45766,65 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $6 + local.tee $5 i32.store offset=8 - local.get $6 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $5 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $5 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $5 i32.load offset=4 - local.set $2 + local.set $3 i32.const 1 - local.get $6 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 1 i32.gt_u select - local.set $8 + local.set $0 i32.const 3 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.const 3 i32.gt_u select - local.set $0 + local.set $2 loop $for-loop|0 local.get $0 - local.get $8 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $8 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.const 1 i32.store - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|0 end end @@ -45815,7 +45837,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45827,32 +45849,32 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $5 i32.load offset=4 - local.set $2 - local.get $6 + local.set $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 + local.set $2 i32.const 0 - local.set $8 + local.set $0 loop $for-loop|01 local.get $0 - local.get $8 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $8 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.const 0 i32.store - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|01 end end @@ -45865,7 +45887,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45877,40 +45899,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $5 i32.load offset=4 - local.set $2 + local.set $3 i32.const 0 - local.set $8 - local.get $6 + local.set $0 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u i32.const 3 i32.sub - local.tee $0 + local.tee $2 i32.const 0 - local.get $0 + local.get $2 i32.const 0 i32.gt_s select - local.set $0 + local.set $2 loop $for-loop|03 local.get $0 - local.get $8 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $8 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.const 1 i32.store - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|03 end end @@ -45923,7 +45945,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45935,10 +45957,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $5 i32.load offset=4 local.set $3 - local.get $6 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -45951,23 +45973,23 @@ i32.const 0 i32.gt_s select - local.set $8 + local.set $0 loop $for-loop|05 + local.get $0 local.get $2 - local.get $8 - i32.gt_s + i32.lt_s if - local.get $8 + local.get $0 i32.const 2 i32.shl local.get $3 i32.add i32.const 2 i32.store - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|05 end end @@ -45980,7 +46002,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45992,11 +46014,11 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $5 i32.load offset=4 local.set $2 i32.const 1 - local.get $6 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -46005,23 +46027,23 @@ i32.const 1 i32.gt_u select - local.set $8 + local.set $0 loop $for-loop|07 - local.get $8 + local.get $0 i32.const 0 i32.lt_s if - local.get $8 + local.get $0 i32.const 2 i32.shl local.get $2 i32.add i32.const 0 i32.store - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|07 end end @@ -46034,7 +46056,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -46047,7 +46069,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray @@ -46153,7 +46175,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $5 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -46964,7 +46986,7 @@ i32.load offset=4 local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -47023,7 +47045,7 @@ i32.load offset=4 local.get $0 i32.load - i32.ne + i32.sub if i32.const 0 i32.const 1568 @@ -47151,32 +47173,32 @@ local.set $2 loop $for-loop|010 local.get $2 - local.get $18 + local.get $7 i32.gt_s if local.get $3 - local.get $18 + local.get $7 i32.add i32.load8_s local.set $0 i32.const 4 global.set $~argumentsLength - local.get $57 + local.get $1 local.get $0 - local.get $18 + local.get $7 local.get $4 i32.const 2896 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $57 - local.get $18 + local.set $1 + local.get $7 i32.const 1 i32.add - local.set $18 + local.set $7 br $for-loop|010 end end - local.get $57 + local.get $1 i32.const 255 i32.and i32.const 6 @@ -47218,40 +47240,44 @@ global.get $~lib/memory/__stack_pointer i32.const 2928 i32.store offset=4 + i32.const 0 + local.set $1 local.get $4 i32.load offset=4 local.set $3 + i32.const 0 + local.set $7 local.get $4 i32.load offset=8 local.set $2 loop $for-loop|0511 local.get $2 - local.get $31 + local.get $7 i32.gt_s if local.get $3 - local.get $31 + local.get $7 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $58 + local.get $1 local.get $0 - local.get $31 + local.get $7 local.get $4 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $58 - local.get $31 + local.set $1 + local.get $7 i32.const 1 i32.add - local.set $31 + local.set $7 br $for-loop|0511 end end - local.get $58 + local.get $1 i32.const 255 i32.and i32.const 6 @@ -47293,40 +47319,44 @@ global.get $~lib/memory/__stack_pointer i32.const 2960 i32.store offset=4 + i32.const 0 + local.set $1 local.get $4 i32.load offset=4 local.set $3 + i32.const 0 + local.set $7 local.get $4 i32.load offset=8 local.set $2 loop $for-loop|013 local.get $2 - local.get $32 + local.get $7 i32.gt_s if local.get $3 - local.get $32 + local.get $7 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $59 + local.get $1 local.get $0 - local.get $32 + local.get $7 local.get $4 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $59 - local.get $32 + local.set $1 + local.get $7 i32.const 1 i32.add - local.set $32 + local.set $7 br $for-loop|013 end end - local.get $59 + local.get $1 i32.const 255 i32.and i32.const 6 @@ -47368,9 +47398,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2992 i32.store offset=4 + i32.const 0 + local.set $1 local.get $4 i32.load offset=4 local.set $3 + i32.const 0 + local.set $7 local.get $4 i32.load offset=8 i32.const 1 @@ -47378,10 +47412,10 @@ local.set $2 loop $for-loop|017 local.get $2 - local.get $33 + local.get $7 i32.gt_s if - local.get $33 + local.get $7 i32.const 1 i32.shl local.get $3 @@ -47390,22 +47424,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $60 + local.get $1 local.get $0 - local.get $33 + local.get $7 local.get $4 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $60 - local.get $33 + local.set $1 + local.get $7 i32.const 1 i32.add - local.set $33 + local.set $7 br $for-loop|017 end end - local.get $60 + local.get $1 i32.const 65535 i32.and i32.const 6 @@ -47447,9 +47481,13 @@ global.get $~lib/memory/__stack_pointer i32.const 3024 i32.store offset=4 + i32.const 0 + local.set $1 local.get $4 i32.load offset=4 local.set $3 + i32.const 0 + local.set $7 local.get $4 i32.load offset=8 i32.const 1 @@ -47457,10 +47495,10 @@ local.set $2 loop $for-loop|022 local.get $2 - local.get $34 + local.get $7 i32.gt_s if - local.get $34 + local.get $7 i32.const 1 i32.shl local.get $3 @@ -47469,22 +47507,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $61 + local.get $1 local.get $0 - local.get $34 + local.get $7 local.get $4 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $61 - local.get $34 + local.set $1 + local.get $7 i32.const 1 i32.add - local.set $34 + local.set $7 br $for-loop|022 end end - local.get $61 + local.get $1 i32.const 65535 i32.and i32.const 6 @@ -47526,9 +47564,13 @@ global.get $~lib/memory/__stack_pointer i32.const 3056 i32.store offset=4 + i32.const 0 + local.set $1 local.get $4 i32.load offset=4 local.set $3 + i32.const 0 + local.set $7 local.get $4 i32.load offset=8 i32.const 2 @@ -47536,10 +47578,10 @@ local.set $2 loop $for-loop|027 local.get $2 - local.get $35 + local.get $7 i32.gt_s if - local.get $35 + local.get $7 i32.const 2 i32.shl local.get $3 @@ -47548,22 +47590,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $67 + local.get $1 local.get $0 - local.get $35 + local.get $7 local.get $4 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $67 - local.get $35 + local.set $1 + local.get $7 i32.const 1 i32.add - local.set $35 + local.set $7 br $for-loop|027 end end - local.get $67 + local.get $1 i32.const 6 i32.ne br_if $folding-inner1 @@ -47603,9 +47645,13 @@ global.get $~lib/memory/__stack_pointer i32.const 3088 i32.store offset=4 + i32.const 0 + local.set $1 local.get $4 i32.load offset=4 local.set $3 + i32.const 0 + local.set $7 local.get $4 i32.load offset=8 i32.const 2 @@ -47613,10 +47659,10 @@ local.set $2 loop $for-loop|032 local.get $2 - local.get $36 + local.get $7 i32.gt_s if - local.get $36 + local.get $7 i32.const 2 i32.shl local.get $3 @@ -47625,22 +47671,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $68 + local.get $1 local.get $0 - local.get $36 + local.get $7 local.get $4 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $68 - local.get $36 + local.set $1 + local.get $7 i32.const 1 i32.add - local.set $36 + local.set $7 br $for-loop|032 end end - local.get $68 + local.get $1 i32.const 6 i32.ne br_if $folding-inner1 @@ -47663,61 +47709,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3120 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + i32.const 0 + local.set $7 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|037 local.get $0 - local.get $37 + local.get $7 i32.gt_s if - local.get $37 + local.get $7 i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add i64.load - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $14 - local.get $10 - local.get $37 - local.get $3 + local.get $13 + local.get $11 + local.get $7 + local.get $2 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $14 - local.get $37 + local.set $13 + local.get $7 i32.const 1 i32.add - local.set $37 + local.set $7 br $for-loop|037 end end - local.get $14 + local.get $13 i64.const 6 i64.ne br_if $folding-inner1 @@ -47740,61 +47788,65 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3152 i32.store offset=4 - local.get $3 + i64.const 0 + local.set $13 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + i32.const 0 + local.set $7 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|042 local.get $0 - local.get $38 + local.get $7 i32.gt_s if - local.get $38 + local.get $7 i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add i64.load - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $62 - local.get $10 - local.get $38 - local.get $3 + local.get $13 + local.get $11 + local.get $7 + local.get $2 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $62 - local.get $38 + local.set $13 + local.get $7 i32.const 1 i32.add - local.set $38 + local.set $7 br $for-loop|042 end end - local.get $62 + local.get $13 i64.const 6 i64.ne br_if $folding-inner1 @@ -47817,61 +47869,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 3184 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + i32.const 0 + local.set $7 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|047 local.get $0 - local.get $39 + local.get $7 i32.gt_s if - local.get $39 + local.get $7 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add f32.load - local.set $5 + local.set $6 i32.const 4 global.set $~argumentsLength - local.get $16 - local.get $5 - local.get $39 - local.get $3 + local.get $14 + local.get $6 + local.get $7 + local.get $2 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $16 - local.get $39 + local.set $14 + local.get $7 i32.const 1 i32.add - local.set $39 + local.set $7 br $for-loop|047 end end - local.get $16 + local.get $14 f32.const 6 f32.ne br_if $folding-inner1 @@ -47894,61 +47948,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3216 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + i32.const 0 + local.set $7 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|052 local.get $0 - local.get $40 + local.get $7 i32.gt_s if - local.get $40 + local.get $7 i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add f64.load - local.set $7 + local.set $8 i32.const 4 global.set $~argumentsLength - local.get $17 + local.get $15 + local.get $8 local.get $7 - local.get $40 - local.get $3 + local.get $2 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $17 - local.get $40 + local.set $15 + local.get $7 i32.const 1 i32.add - local.set $40 + local.set $7 br $for-loop|052 end end - local.get $17 + local.get $15 f64.const 6 f64.ne br_if $folding-inner1 @@ -48549,6 +48605,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3248 i32.store offset=4 + i32.const 0 + local.set $7 local.get $3 i32.load offset=4 local.set $2 @@ -48556,35 +48614,35 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|059 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if + local.get $1 local.get $2 - local.get $8 i32.add i32.load8_s local.set $0 i32.const 4 global.set $~argumentsLength - local.get $69 + local.get $7 local.get $0 - local.get $8 + local.get $1 local.get $3 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $69 - local.get $8 + local.set $7 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|059 end end - local.get $69 + local.get $7 i32.const 255 i32.and i32.const 6 @@ -48626,6 +48684,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3280 i32.store offset=4 + i32.const 0 + local.set $7 local.get $3 i32.load offset=4 local.set $2 @@ -48633,35 +48693,35 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|064 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if + local.get $1 local.get $2 - local.get $8 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $70 + local.get $7 local.get $0 - local.get $8 + local.get $1 local.get $3 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $70 - local.get $8 + local.set $7 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|064 end end - local.get $70 + local.get $7 i32.const 255 i32.and i32.const 6 @@ -48703,6 +48763,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3312 i32.store offset=4 + i32.const 0 + local.set $7 local.get $3 i32.load offset=4 local.set $2 @@ -48710,35 +48772,35 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|071 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if + local.get $1 local.get $2 - local.get $8 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $12 + local.get $7 local.get $0 - local.get $8 + local.get $1 local.get $3 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $12 - local.get $8 + local.set $7 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|071 end end - local.get $12 + local.get $7 i32.const 255 i32.and i32.const 6 @@ -48780,6 +48842,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3344 i32.store offset=4 + i32.const 0 + local.set $7 local.get $3 i32.load offset=4 local.set $2 @@ -48789,13 +48853,13 @@ i32.shr_u i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|076 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if - local.get $8 + local.get $1 i32.const 1 i32.shl local.get $2 @@ -48804,22 +48868,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $7 local.get $0 - local.get $8 + local.get $1 local.get $3 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $15 - local.get $8 + local.set $7 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|076 end end - local.get $15 + local.get $7 i32.const 65535 i32.and i32.const 6 @@ -48861,6 +48925,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3376 i32.store offset=4 + i32.const 0 + local.set $7 local.get $3 i32.load offset=4 local.set $2 @@ -48870,13 +48936,13 @@ i32.shr_u i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|081 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if - local.get $8 + local.get $1 i32.const 1 i32.shl local.get $2 @@ -48885,22 +48951,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $11 + local.get $7 local.get $0 - local.get $8 + local.get $1 local.get $3 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $11 - local.get $8 + local.set $7 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|081 end end - local.get $11 + local.get $7 i32.const 65535 i32.and i32.const 6 @@ -48942,6 +49008,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=4 + i32.const 0 + local.set $7 local.get $3 i32.load offset=4 local.set $2 @@ -48951,13 +49019,13 @@ i32.shr_u i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|086 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if - local.get $8 + local.get $1 i32.const 2 i32.shl local.get $2 @@ -48966,22 +49034,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $13 + local.get $7 local.get $0 - local.get $8 + local.get $1 local.get $3 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $13 - local.get $8 + local.set $7 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|086 end end - local.get $13 + local.get $7 i32.const 6 i32.ne br_if $folding-inner5 @@ -49021,6 +49089,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store offset=4 + i32.const 0 + local.set $7 local.get $3 i32.load offset=4 local.set $2 @@ -49030,13 +49100,13 @@ i32.shr_u i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|091 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if - local.get $8 + local.get $1 i32.const 2 i32.shl local.get $2 @@ -49045,22 +49115,22 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $9 + local.get $7 local.get $0 - local.get $8 + local.get $1 local.get $3 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $8 + local.set $7 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|091 end end - local.get $9 + local.get $7 i32.const 6 i32.ne br_if $folding-inner5 @@ -49100,6 +49170,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=4 + i64.const 0 + local.set $13 local.get $2 i32.load offset=4 local.set $0 @@ -49109,37 +49181,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|096 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if - local.get $8 + local.get $1 i32.const 3 i32.shl local.get $0 i32.add i64.load - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $63 - local.get $10 - local.get $8 + local.get $13 + local.get $11 + local.get $1 local.get $2 i32.const 3472 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $63 - local.get $8 + local.set $13 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|096 end end - local.get $63 + local.get $13 i64.const 6 i64.ne br_if $folding-inner5 @@ -49179,6 +49251,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3504 i32.store offset=4 + i64.const 0 + local.set $13 local.get $2 i32.load offset=4 local.set $0 @@ -49188,37 +49262,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|0101 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if - local.get $8 + local.get $1 i32.const 3 i32.shl local.get $0 i32.add i64.load - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $64 - local.get $10 - local.get $8 + local.get $13 + local.get $11 + local.get $1 local.get $2 i32.const 3504 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $64 - local.get $8 + local.set $13 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|0101 end end - local.get $64 + local.get $13 i64.const 6 i64.ne br_if $folding-inner5 @@ -49258,6 +49332,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=4 + f32.const 0 + local.set $14 local.get $2 i32.load offset=4 local.set $0 @@ -49267,37 +49343,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|0106 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if - local.get $8 + local.get $1 i32.const 2 i32.shl local.get $0 i32.add f32.load - local.set $5 + local.set $6 i32.const 4 global.set $~argumentsLength - local.get $65 - local.get $5 - local.get $8 + local.get $14 + local.get $6 + local.get $1 local.get $2 i32.const 3536 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $65 - local.get $8 + local.set $14 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|0106 end end - local.get $65 + local.get $14 f32.const 6 f32.ne br_if $folding-inner5 @@ -49337,6 +49413,8 @@ global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=4 + f64.const 0 + local.set $15 local.get $2 i32.load offset=4 local.set $0 @@ -49346,37 +49424,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $8 + local.set $1 loop $for-loop|0111 - local.get $8 + local.get $1 i32.const 0 i32.ge_s if - local.get $8 + local.get $1 i32.const 3 i32.shl local.get $0 i32.add f64.load - local.set $7 + local.set $8 i32.const 4 global.set $~argumentsLength - local.get $66 - local.get $7 + local.get $15 local.get $8 + local.get $1 local.get $2 i32.const 3568 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $66 - local.get $8 + local.set $15 + local.get $1 i32.const 1 i32.sub - local.set $8 + local.set $1 br $for-loop|0111 end end - local.get $66 + local.get $15 f64.const 6 f64.ne br_if $folding-inner5 @@ -49384,8 +49462,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49404,17 +49480,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $9 + local.tee $7 i32.store - local.get $9 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $9 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $9 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -49434,87 +49510,87 @@ local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $7 i32.load offset=8 - local.set $6 - local.get $9 - i32.load offset=4 local.set $4 + local.get $7 + i32.load offset=4 + local.set $3 local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 loop $for-loop|02 - local.get $6 - local.get $12 + local.get $4 + local.get $9 i32.gt_s if - local.get $4 - local.get $12 + local.get $3 + local.get $9 i32.add i32.load8_s local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $12 + local.get $1 + local.get $9 i32.add local.get $0 - local.get $12 local.get $9 + local.get $7 i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $12 + local.get $9 i32.const 1 i32.add - local.set $12 + local.set $9 br $for-loop|02 end end - local.get $3 local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 if - local.get $3 local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 local.get $2 + local.get $1 i32.store offset=4 - local.get $3 - local.get $6 + local.get $2 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 - local.get $3 + local.get $2 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne br_if $folding-inner16 - local.get $3 + local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne - br_if $folding-inner17 - local.get $3 + br_if $folding-inner19 + local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 9 @@ -49525,7 +49601,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49544,17 +49620,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $9 + local.tee $7 i32.store - local.get $9 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $9 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $9 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -49574,87 +49650,87 @@ local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $7 i32.load offset=8 - local.set $6 - local.get $9 - i32.load offset=4 local.set $4 + local.get $7 + i32.load offset=4 + local.set $3 local.get $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 loop $for-loop|04 - local.get $6 - local.get $12 + local.get $4 + local.get $9 i32.gt_s if - local.get $4 - local.get $12 + local.get $3 + local.get $9 i32.add i32.load8_u local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $12 + local.get $1 + local.get $9 i32.add local.get $0 - local.get $12 local.get $9 + local.get $7 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $12 + local.get $9 i32.const 1 i32.add - local.set $12 + local.set $9 br $for-loop|04 end end - local.get $3 local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 if - local.get $3 local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 local.get $2 + local.get $1 i32.store offset=4 - local.get $3 - local.get $6 + local.get $2 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 - local.get $3 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne br_if $folding-inner16 - local.get $3 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne - br_if $folding-inner17 - local.get $3 + br_if $folding-inner19 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 9 @@ -49665,7 +49741,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49684,17 +49760,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $9 + local.tee $7 i32.store - local.get $9 + local.get $7 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + local.get $7 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + local.get $7 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -49714,87 +49790,87 @@ local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $7 i32.load offset=8 - local.set $6 - local.get $9 - i32.load offset=4 local.set $4 + local.get $7 + i32.load offset=4 + local.set $3 local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 loop $for-loop|08 - local.get $6 - local.get $12 + local.get $4 + local.get $9 i32.gt_s if - local.get $4 - local.get $12 + local.get $3 + local.get $9 i32.add i32.load8_u local.set $0 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $12 + local.get $1 + local.get $9 i32.add local.get $0 - local.get $12 local.get $9 + local.get $7 i32.const 3664 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $12 + local.get $9 i32.const 1 i32.add - local.set $12 + local.set $9 br $for-loop|08 end end - local.get $3 local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 if - local.get $3 local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 local.get $2 + local.get $1 i32.store offset=4 - local.get $3 - local.get $6 + local.get $2 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 - local.get $3 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne br_if $folding-inner16 - local.get $3 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne - br_if $folding-inner17 - local.get $3 + br_if $folding-inner19 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 @@ -49804,8 +49880,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49824,17 +49898,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $12 + local.tee $10 i32.store - local.get $12 + local.get $10 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $12 + local.get $10 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $12 + local.get $10 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -49854,95 +49928,95 @@ local.tee $0 i64.const 0 i64.store - local.get $12 + local.get $10 i32.load offset=8 i32.const 1 i32.shr_u - local.set $9 - local.get $12 + local.set $7 + local.get $10 i32.load offset=4 - local.set $8 + local.set $5 local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.const 1 i32.shl - local.tee $4 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|06 - local.get $9 - local.get $13 + local.get $7 + local.get $12 i32.gt_s if - local.get $8 - local.get $13 + local.get $5 + local.get $12 i32.const 1 i32.shl - local.tee $2 + local.tee $1 i32.add i32.load16_s local.set $0 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $2 - local.get $3 i32.add local.get $0 - local.get $13 local.get $12 + local.get $10 i32.const 3696 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 + local.set $12 br $for-loop|06 end end - local.get $6 - local.get $3 + local.get $4 + local.get $2 i32.store - local.get $3 + local.get $2 if - local.get $6 - local.get $3 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 - local.get $3 + local.get $4 + local.get $2 i32.store offset=4 - local.get $6 local.get $4 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=8 - local.get $6 + local.get $4 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne br_if $folding-inner16 - local.get $6 + local.get $4 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne - br_if $folding-inner17 - local.get $6 + br_if $folding-inner19 + local.get $4 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 9 @@ -49953,7 +50027,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49972,17 +50046,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $12 + local.tee $10 i32.store - local.get $12 + local.get $10 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $12 + local.get $10 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $12 + local.get $10 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -50002,95 +50076,95 @@ local.tee $0 i64.const 0 i64.store - local.get $12 + local.get $10 i32.load offset=8 i32.const 1 i32.shr_u - local.set $9 - local.get $12 + local.set $7 + local.get $10 i32.load offset=4 - local.set $8 + local.set $5 local.get $0 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.const 1 i32.shl - local.tee $4 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|011 - local.get $9 - local.get $13 + local.get $7 + local.get $12 i32.gt_s if - local.get $8 - local.get $13 + local.get $5 + local.get $12 i32.const 1 i32.shl - local.tee $2 + local.tee $1 i32.add i32.load16_u local.set $0 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $2 - local.get $3 i32.add local.get $0 - local.get $13 local.get $12 + local.get $10 i32.const 3728 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 + local.set $12 br $for-loop|011 end end - local.get $6 - local.get $3 + local.get $4 + local.get $2 i32.store - local.get $3 + local.get $2 if - local.get $6 - local.get $3 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 - local.get $3 + local.get $4 + local.get $2 i32.store offset=4 - local.get $6 local.get $4 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=8 - local.get $6 + local.get $4 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne br_if $folding-inner16 - local.get $6 + local.get $4 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.ne - br_if $folding-inner17 - local.get $6 + br_if $folding-inner19 + local.get $4 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 9 @@ -50101,7 +50175,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50120,17 +50194,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $12 + local.tee $10 i32.store - local.get $12 + local.get $10 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $12 + local.get $10 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $12 + local.get $10 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -50150,95 +50224,95 @@ local.tee $0 i64.const 0 i64.store - local.get $12 + local.get $10 i32.load offset=8 i32.const 2 i32.shr_u - local.set $9 - local.get $12 + local.set $7 + local.get $10 i32.load offset=4 - local.set $8 + local.set $5 local.get $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|014 - local.get $9 - local.get $13 + local.get $7 + local.get $12 i32.gt_s if - local.get $8 - local.get $13 + local.get $5 + local.get $12 i32.const 2 i32.shl - local.tee $2 + local.tee $1 i32.add i32.load local.set $0 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $2 - local.get $3 i32.add local.get $0 - local.get $13 local.get $12 + local.get $10 i32.const 3760 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 + local.set $12 br $for-loop|014 end end - local.get $6 - local.get $3 + local.get $4 + local.get $2 i32.store - local.get $3 + local.get $2 if - local.get $6 - local.get $3 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 - local.get $3 + local.get $4 + local.get $2 i32.store offset=4 - local.get $6 local.get $4 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=8 - local.get $6 + local.get $4 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne br_if $folding-inner16 - local.get $6 + local.get $4 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 i32.ne - br_if $folding-inner17 - local.get $6 + br_if $folding-inner19 + local.get $4 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 9 @@ -50249,7 +50323,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50268,17 +50342,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $12 + local.tee $10 i32.store - local.get $12 + local.get $10 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $12 + local.get $10 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $12 + local.get $10 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -50298,95 +50372,95 @@ local.tee $0 i64.const 0 i64.store - local.get $12 + local.get $10 i32.load offset=8 i32.const 2 i32.shr_u - local.set $9 - local.get $12 + local.set $7 + local.get $10 i32.load offset=4 - local.set $8 + local.set $5 local.get $0 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|016 - local.get $9 - local.get $13 + local.get $7 + local.get $12 i32.gt_s if - local.get $8 - local.get $13 + local.get $5 + local.get $12 i32.const 2 i32.shl - local.tee $2 + local.tee $1 i32.add i32.load local.set $0 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $2 - local.get $3 i32.add local.get $0 - local.get $13 local.get $12 + local.get $10 i32.const 3792 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 + local.set $12 br $for-loop|016 end end - local.get $6 - local.get $3 + local.get $4 + local.get $2 i32.store - local.get $3 + local.get $2 if - local.get $6 - local.get $3 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $6 - local.get $3 + local.get $4 + local.get $2 i32.store offset=4 - local.get $6 local.get $4 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.store offset=8 - local.get $6 + local.get $4 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne br_if $folding-inner16 - local.get $6 + local.get $4 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 i32.ne - br_if $folding-inner17 - local.get $6 + br_if $folding-inner19 + local.get $4 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 9 @@ -50397,7 +50471,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50416,17 +50490,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $11 + local.tee $9 i32.store - local.get $11 + local.get $9 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $11 + local.get $9 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $11 + local.get $9 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -50446,95 +50520,95 @@ local.tee $0 i64.const 0 i64.store - local.get $11 + local.get $9 i32.load offset=8 i32.const 3 i32.shr_u - local.set $8 - local.get $11 + local.set $5 + local.get $9 i32.load offset=4 - local.set $6 + local.set $4 local.get $0 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.const 3 i32.shl - local.tee $3 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 loop $for-loop|018 - local.get $8 - local.get $13 + local.get $5 + local.get $12 i32.gt_s if - local.get $6 - local.get $13 + local.get $4 + local.get $12 i32.const 3 i32.shl local.tee $0 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $1 i32.add - local.get $10 - local.get $13 local.get $11 + local.get $12 + local.get $9 i32.const 3824 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 + local.set $12 br $for-loop|018 end end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store - local.get $2 + local.get $1 if - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=4 - local.get $4 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $4 + local.get $3 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne br_if $folding-inner16 - local.get $4 + local.get $3 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 i64.ne - br_if $folding-inner17 - local.get $4 + br_if $folding-inner19 + local.get $3 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 9 @@ -50545,7 +50619,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50564,17 +50638,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $11 + local.tee $9 i32.store - local.get $11 + local.get $9 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $11 + local.get $9 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $11 + local.get $9 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -50594,95 +50668,95 @@ local.tee $0 i64.const 0 i64.store - local.get $11 + local.get $9 i32.load offset=8 i32.const 3 i32.shr_u - local.set $8 - local.get $11 + local.set $5 + local.get $9 i32.load offset=4 - local.set $6 + local.set $4 local.get $0 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.const 3 i32.shl - local.tee $3 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 loop $for-loop|020 - local.get $8 - local.get $13 + local.get $5 + local.get $12 i32.gt_s if - local.get $6 - local.get $13 + local.get $4 + local.get $12 i32.const 3 i32.shl local.tee $0 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $1 i32.add - local.get $10 - local.get $13 local.get $11 + local.get $12 + local.get $9 i32.const 3856 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 + local.set $12 br $for-loop|020 end end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store - local.get $2 + local.get $1 if - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=4 - local.get $4 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $4 + local.get $3 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne br_if $folding-inner16 - local.get $4 + local.get $3 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 i64.ne - br_if $folding-inner17 - local.get $4 + br_if $folding-inner19 + local.get $3 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 9 @@ -50693,7 +50767,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50712,17 +50786,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $11 + local.tee $9 i32.store - local.get $11 + local.get $9 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $11 + local.get $9 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $11 + local.get $9 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -50742,95 +50816,95 @@ local.tee $0 i64.const 0 i64.store - local.get $11 + local.get $9 i32.load offset=8 i32.const 2 i32.shr_u - local.set $8 - local.get $11 + local.set $5 + local.get $9 i32.load offset=4 - local.set $6 + local.set $4 local.get $0 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.const 2 i32.shl - local.tee $3 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 loop $for-loop|023 - local.get $8 - local.get $13 + local.get $5 + local.get $12 i32.gt_s if - local.get $6 - local.get $13 + local.get $4 + local.get $12 i32.const 2 i32.shl local.tee $0 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $1 i32.add - local.get $5 - local.get $13 - local.get $11 + local.get $6 + local.get $12 + local.get $9 i32.const 3888 i32.load call_indirect $0 (type $f32_i32_i32_=>_f32) f32.store - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 + local.set $12 br $for-loop|023 end end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store - local.get $2 + local.get $1 if - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=4 - local.get $4 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $4 + local.get $3 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne br_if $folding-inner16 - local.get $4 + local.get $3 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 f32.ne - br_if $folding-inner17 - local.get $4 + br_if $folding-inner19 + local.get $3 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 9 @@ -50841,7 +50915,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50860,17 +50934,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $11 + local.tee $9 i32.store - local.get $11 + local.get $9 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $11 + local.get $9 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $11 + local.get $9 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -50890,95 +50964,95 @@ local.tee $0 i64.const 0 i64.store - local.get $11 + local.get $9 i32.load offset=8 i32.const 3 i32.shr_u - local.set $8 - local.get $11 + local.set $5 + local.get $9 i32.load offset=4 - local.set $6 + local.set $4 local.get $0 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.const 3 i32.shl - local.tee $3 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 loop $for-loop|025 - local.get $8 - local.get $13 + local.get $5 + local.get $12 i32.gt_s if - local.get $6 - local.get $13 + local.get $4 + local.get $12 i32.const 3 i32.shl local.tee $0 i32.add f64.load - local.set $7 + local.set $8 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $1 i32.add - local.get $7 - local.get $13 - local.get $11 + local.get $8 + local.get $12 + local.get $9 i32.const 3920 i32.load call_indirect $0 (type $f64_i32_i32_=>_f64) f64.store - local.get $13 + local.get $12 i32.const 1 i32.add - local.set $13 + local.set $12 br $for-loop|025 end end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store - local.get $2 + local.get $1 if - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $3 + local.get $1 i32.store offset=4 - local.get $4 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 - local.get $4 + local.get $3 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne br_if $folding-inner16 - local.get $4 + local.get $3 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.ne - br_if $folding-inner17 - local.get $4 + br_if $folding-inner19 + local.get $3 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 9 @@ -51000,9 +51074,7 @@ call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> i32.const 0 - local.set $11 - i32.const 0 - local.set $13 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51018,37 +51090,37 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4304 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4304 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|012 - local.get $2 - local.get $11 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $11 + local.get $2 + local.get $7 i32.add i32.load8_s local.set $0 @@ -51056,17 +51128,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $11 - local.get $4 + local.get $7 + local.get $3 i32.const 4304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $11 + local.get $7 i32.const 1 i32.add - local.set $11 + local.set $7 br $for-loop|012 end end @@ -51074,23 +51146,25 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4336 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4336 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + i32.const 0 + local.set $7 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|0410 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $13 + local.get $2 + local.get $7 i32.add i32.load8_s local.set $0 @@ -51098,17 +51172,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 4336 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0410 end end @@ -51120,9 +51194,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $11 - i32.const 0 - local.set $13 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51138,37 +51210,37 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4368 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4368 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|01426 - local.get $2 - local.get $11 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $11 + local.get $2 + local.get $7 i32.add i32.load8_u local.set $0 @@ -51176,17 +51248,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $11 - local.get $4 + local.get $7 + local.get $3 i32.const 4368 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $11 + local.get $7 i32.const 1 i32.add - local.set $11 + local.set $7 br $for-loop|01426 end end @@ -51194,23 +51266,25 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4400 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4400 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + i32.const 0 + local.set $7 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|0415 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $13 + local.get $2 + local.get $7 i32.add i32.load8_u local.set $0 @@ -51218,17 +51292,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 4400 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0415 end end @@ -51240,9 +51314,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $11 - i32.const 0 - local.set $13 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51258,37 +51330,37 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - i32.const 4432 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.016 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4432 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|01827 - local.get $2 - local.get $11 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $11 + local.get $2 + local.get $7 i32.add i32.load8_u local.set $0 @@ -51296,17 +51368,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $11 - local.get $4 + local.get $7 + local.get $3 i32.const 4432 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.016 drop - local.get $11 + local.get $7 i32.const 1 i32.add - local.set $11 + local.set $7 br $for-loop|01827 end end @@ -51314,23 +51386,25 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0119 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + i32.const 0 + local.set $7 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|0420 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $13 + local.get $2 + local.get $7 i32.add i32.load8_u local.set $0 @@ -51338,17 +51412,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 4464 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0119 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0420 end end @@ -51360,9 +51434,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $11 - i32.const 0 - local.set $13 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51378,41 +51450,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4496 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4496 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|021 - local.get $2 - local.get $11 + local.get $1 + local.get $7 i32.gt_s if - local.get $11 + local.get $7 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_s local.set $0 @@ -51420,17 +51492,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $11 - local.get $4 + local.get $7 + local.get $3 i32.const 4496 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $11 + local.get $7 i32.const 1 i32.add - local.set $11 + local.set $7 br $for-loop|021 end end @@ -51438,27 +51510,29 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4528 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0422 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $13 + local.get $7 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_s local.set $0 @@ -51466,17 +51540,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 4528 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0422 end end @@ -51488,9 +51562,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $11 - i32.const 0 - local.set $13 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51506,41 +51578,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4560 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|02328 - local.get $2 - local.get $11 + local.get $1 + local.get $7 i32.gt_s if - local.get $11 + local.get $7 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u local.set $0 @@ -51548,17 +51620,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $11 - local.get $4 + local.get $7 + local.get $3 i32.const 4560 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $11 + local.get $7 i32.const 1 i32.add - local.set $11 + local.set $7 br $for-loop|02328 end end @@ -51566,27 +51638,29 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4592 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0424 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $13 + local.get $7 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u local.set $0 @@ -51594,17 +51668,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 4592 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0424 end end @@ -51616,9 +51690,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $11 - i32.const 0 - local.set $13 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51634,41 +51706,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4624 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4624 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|02529 - local.get $2 - local.get $11 + local.get $1 + local.get $7 i32.gt_s if - local.get $11 + local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.set $0 @@ -51676,17 +51748,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $11 - local.get $4 + local.get $7 + local.get $3 i32.const 4624 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $11 + local.get $7 i32.const 1 i32.add - local.set $11 + local.set $7 br $for-loop|02529 end end @@ -51694,27 +51766,29 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0426 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $13 + local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.set $0 @@ -51722,17 +51796,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 4656 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0426 end end @@ -51744,9 +51818,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $11 - i32.const 0 - local.set $13 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51762,41 +51834,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4688 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4688 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|028 - local.get $2 - local.get $11 + local.get $1 + local.get $7 i32.gt_s if - local.get $11 + local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.set $0 @@ -51804,17 +51876,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $11 - local.get $4 + local.get $7 + local.get $3 i32.const 4688 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $11 + local.get $7 i32.const 1 i32.add - local.set $11 + local.set $7 br $for-loop|028 end end @@ -51822,27 +51894,29 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4720 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 4720 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0429 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $13 + local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.set $0 @@ -51850,17 +51924,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 4720 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0429 end end @@ -51872,9 +51946,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51904,10 +51976,10 @@ i32.const 2 i64.const 6 call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4752 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4752 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 @@ -51918,31 +51990,31 @@ local.set $0 loop $for-loop|030 local.get $0 - local.get $13 + local.get $1 i32.gt_s if - local.get $13 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $13 + local.get $11 + local.get $1 local.get $3 i32.const 4752 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $13 + local.get $1 i32.const 1 i32.add - local.set $13 + local.set $1 br $for-loop|030 end end @@ -51950,13 +52022,15 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4784 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4784 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 + i32.const 0 + local.set $1 local.get $3 i32.load offset=8 i32.const 3 @@ -51964,31 +52038,31 @@ local.set $0 loop $for-loop|0431 local.get $0 - local.get $9 + local.get $1 i32.gt_s if - local.get $9 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $9 + local.get $11 + local.get $1 local.get $3 i32.const 4784 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 drop - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0431 end end @@ -52000,9 +52074,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52032,10 +52104,10 @@ i32.const 2 i64.const 6 call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4816 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4816 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 @@ -52046,31 +52118,31 @@ local.set $0 loop $for-loop|033 local.get $0 - local.get $13 + local.get $1 i32.gt_s if - local.get $13 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $13 + local.get $11 + local.get $1 local.get $3 i32.const 4816 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $13 + local.get $1 i32.const 1 i32.add - local.set $13 + local.set $1 br $for-loop|033 end end @@ -52078,13 +52150,15 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4848 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4848 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 + i32.const 0 + local.set $1 local.get $3 i32.load offset=8 i32.const 3 @@ -52092,31 +52166,31 @@ local.set $0 loop $for-loop|0434 local.get $0 - local.get $9 + local.get $1 i32.gt_s if - local.get $9 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $9 + local.get $11 + local.get $1 local.get $3 i32.const 4848 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 drop - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0434 end end @@ -52128,9 +52202,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52160,10 +52232,10 @@ i32.const 2 f32.const 6 call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4880 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 @@ -52174,31 +52246,31 @@ local.set $0 loop $for-loop|035 local.get $0 - local.get $13 + local.get $1 i32.gt_s if - local.get $13 + local.get $1 i32.const 2 i32.shl local.get $2 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $5 - local.get $13 + local.get $6 + local.get $1 local.get $3 i32.const 4880 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $13 + local.get $1 i32.const 1 i32.add - local.set $13 + local.set $1 br $for-loop|035 end end @@ -52206,13 +52278,15 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4912 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4912 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 + i32.const 0 + local.set $1 local.get $3 i32.load offset=8 i32.const 2 @@ -52220,31 +52294,31 @@ local.set $0 loop $for-loop|0436 local.get $0 - local.get $9 + local.get $1 i32.gt_s if - local.get $9 + local.get $1 i32.const 2 i32.shl local.get $2 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $5 - local.get $9 + local.get $6 + local.get $1 local.get $3 i32.const 4912 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 drop - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0436 end end @@ -52256,9 +52330,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52288,10 +52360,10 @@ i32.const 2 f64.const 6 call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 @@ -52302,31 +52374,31 @@ local.set $0 loop $for-loop|038 local.get $0 - local.get $13 + local.get $1 i32.gt_s if - local.get $13 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add f64.load - local.set $7 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $13 + local.get $8 + local.get $1 local.get $3 i32.const 4944 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $13 + local.get $1 i32.const 1 i32.add - local.set $13 + local.set $1 br $for-loop|038 end end @@ -52334,13 +52406,15 @@ end i32.eqz br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=4 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 + i32.const 0 + local.set $1 local.get $3 i32.load offset=8 i32.const 3 @@ -52348,31 +52422,31 @@ local.set $0 loop $for-loop|0439 local.get $0 - local.get $9 + local.get $1 i32.gt_s if - local.get $9 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add f64.load - local.set $7 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $9 + local.get $8 + local.get $1 local.get $3 i32.const 4976 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 drop - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0439 end end @@ -52384,8 +52458,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -52396,90 +52468,92 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5008 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 loop $for-loop|040 - local.get $3 - local.get $8 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if - local.get $4 - local.get $8 + local.get $0 + local.get $3 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $6 + local.get $0 + local.get $4 i32.const 5008 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|040 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5040 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 loop $for-loop|0441 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 - local.get $4 + local.get $3 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.const 5040 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52503,8 +52577,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -52515,90 +52587,92 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5072 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 loop $for-loop|043 - local.get $3 - local.get $8 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if - local.get $4 - local.get $8 + local.get $0 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $6 + local.get $0 + local.get $4 i32.const 5072 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|043 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5104 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 loop $for-loop|0444 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 - local.get $4 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.const 5104 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52622,8 +52696,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -52634,90 +52706,92 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $6 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $6 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 5136 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.045 loop $for-loop|046 - local.get $3 - local.get $8 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if - local.get $4 - local.get $8 + local.get $0 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $6 + local.get $0 + local.get $4 i32.const 5136 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.045 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|046 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5168 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 local.set $3 + i32.const 0 + local.set $0 + local.get $4 + i32.load offset=8 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0147 loop $for-loop|0448 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 - local.get $4 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.const 5168 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52741,8 +52815,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -52753,98 +52825,100 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5200 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 loop $for-loop|049 - local.get $3 - local.get $8 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if - local.get $8 + local.get $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $6 + local.get $0 + local.get $4 i32.const 5200 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|049 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5232 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 loop $for-loop|0450 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.const 5232 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52868,8 +52942,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -52880,98 +52952,100 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5264 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 loop $for-loop|051 - local.get $3 - local.get $8 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if - local.get $8 + local.get $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $6 + local.get $0 + local.get $4 i32.const 5264 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|051 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5296 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 loop $for-loop|0452 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.const 5296 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52995,8 +53069,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -53007,98 +53079,100 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 5328 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 loop $for-loop|053 - local.get $3 - local.get $8 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if - local.get $8 + local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $6 + local.get $0 + local.get $4 i32.const 5328 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|053 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5360 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 loop $for-loop|0454 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.const 5360 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -53122,8 +53196,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -53134,98 +53206,100 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $6 + local.tee $4 i32.store - local.get $6 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $6 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $6 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 5392 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 loop $for-loop|055 - local.get $3 - local.get $8 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if - local.get $8 + local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $6 + local.get $0 + local.get $4 i32.const 5392 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|055 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5424 i32.store offset=4 - local.get $6 + local.get $4 i32.load offset=4 - local.set $4 - local.get $6 + local.set $3 + i32.const 0 + local.set $0 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 loop $for-loop|0456 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $6 + local.get $4 i32.const 5424 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -53249,8 +53323,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -53261,98 +53333,100 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 5456 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 loop $for-loop|057 - local.get $2 - local.get $8 - i32.gt_s + local.get $0 + local.get $1 + i32.lt_s if - local.get $8 + local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 + local.get $0 + local.get $3 i32.const 5456 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|057 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5488 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 loop $for-loop|0458 local.get $0 - local.get $2 + local.get $1 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 i32.const 5488 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -53376,8 +53450,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -53388,98 +53460,100 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 5520 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 loop $for-loop|060 - local.get $2 - local.get $8 - i32.gt_s + local.get $0 + local.get $1 + i32.lt_s if - local.get $8 + local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 + local.get $0 + local.get $3 i32.const 5520 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|060 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5552 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 loop $for-loop|0461 local.get $0 - local.get $2 + local.get $1 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 i32.const 5552 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -53503,8 +53577,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -53515,98 +53587,100 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 5584 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 loop $for-loop|062 - local.get $2 - local.get $8 - i32.gt_s + local.get $0 + local.get $1 + i32.lt_s if - local.get $8 + local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 + local.get $0 + local.get $3 i32.const 5584 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|062 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5616 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 loop $for-loop|0463 local.get $0 - local.get $2 + local.get $1 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add f32.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 i32.const 5616 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) @@ -53630,8 +53704,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -53642,98 +53714,100 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 5648 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 loop $for-loop|065 - local.get $2 - local.get $8 - i32.gt_s + local.get $0 + local.get $1 + i32.lt_s if - local.get $8 + local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $4 + local.get $0 + local.get $3 i32.const 5648 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|065 end end i32.const -1 - local.set $8 + local.set $0 end - local.get $8 + local.get $0 i32.const 1 i32.ne br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5680 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 + local.set $1 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 loop $for-loop|0466 local.get $0 - local.get $2 + local.get $1 i32.lt_s if local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 i32.const 5680 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) @@ -53771,103 +53845,103 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5712 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 loop $for-loop|067 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5712 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|067 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 5744 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 loop $for-loop|0468 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5744 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0468 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -53890,103 +53964,103 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5776 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 loop $for-loop|069 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5776 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|069 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 5808 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 loop $for-loop|0470 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5808 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0470 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -54009,103 +54083,103 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 5840 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.071 loop $for-loop|072 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5840 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.071 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|072 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 5872 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0173 loop $for-loop|0474 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5872 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0173 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0474 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -54128,111 +54202,111 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5904 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 loop $for-loop|075 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5904 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|075 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 5936 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 loop $for-loop|0476 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5936 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0476 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -54255,111 +54329,111 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5968 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 loop $for-loop|077 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 5968 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|077 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6000 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 loop $for-loop|0478 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6000 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0478 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -54382,111 +54456,111 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 6032 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 loop $for-loop|079 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6032 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|079 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6064 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 loop $for-loop|0480 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6064 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0480 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -54509,111 +54583,111 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 6096 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 loop $for-loop|082 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6096 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|082 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 loop $for-loop|0483 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.const 6128 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0483 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -54636,111 +54710,111 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 6160 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 loop $for-loop|084 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6160 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|084 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6192 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 loop $for-loop|0485 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6192 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0485 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -54763,111 +54837,111 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 6224 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 loop $for-loop|087 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6224 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|087 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6256 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 loop $for-loop|0488 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6256 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0488 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -54890,111 +54964,111 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $2 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 6288 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 loop $for-loop|089 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6288 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|089 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6320 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 loop $for-loop|0490 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6320 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0490 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -55017,111 +55091,111 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $2 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 6352 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 loop $for-loop|092 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6352 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|092 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6384 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 loop $for-loop|0493 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.const 6384 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0493 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner28 @@ -55130,9 +55204,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55148,37 +55220,37 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 6416 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6416 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|094 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $13 + local.get $2 + local.get $7 i32.add i32.load8_s local.set $0 @@ -55186,18 +55258,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 6416 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|094 end end @@ -55205,23 +55277,25 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + i32.const 0 + local.set $7 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|0495 - local.get $2 - local.get $9 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $9 + local.get $2 + local.get $7 i32.add i32.load8_s local.set $0 @@ -55229,18 +55303,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $9 - local.get $4 + local.get $7 + local.get $3 i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 drop - local.get $9 + local.get $7 i32.const 1 i32.add - local.set $9 + local.set $7 br $for-loop|0495 end end @@ -55252,9 +55326,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55270,37 +55342,37 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 6480 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6480 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|097 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $13 + local.get $2 + local.get $7 i32.add i32.load8_u local.set $0 @@ -55308,18 +55380,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|097 end end @@ -55327,23 +55399,25 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 6512 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6512 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + i32.const 0 + local.set $7 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|0498 - local.get $2 - local.get $9 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $9 + local.get $2 + local.get $7 i32.add i32.load8_u local.set $0 @@ -55351,18 +55425,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $9 - local.get $4 + local.get $7 + local.get $3 i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 drop - local.get $9 + local.get $7 i32.const 1 i32.add - local.set $9 + local.set $7 br $for-loop|0498 end end @@ -55374,9 +55448,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55392,37 +55464,37 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - i32.const 6544 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.099 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6544 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|0100 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $13 + local.get $2 + local.get $7 i32.add i32.load8_u local.set $0 @@ -55430,18 +55502,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.099 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0100 end end @@ -55449,23 +55521,25 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 6576 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01101 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6576 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + i32.const 0 + local.set $7 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|04102 - local.get $2 - local.get $9 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $9 + local.get $2 + local.get $7 i32.add i32.load8_u local.set $0 @@ -55473,18 +55547,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $9 - local.get $4 + local.get $7 + local.get $3 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01101 drop - local.get $9 + local.get $7 i32.const 1 i32.add - local.set $9 + local.set $7 br $for-loop|04102 end end @@ -55496,9 +55570,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55514,41 +55586,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 6608 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6608 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0103 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $13 + local.get $7 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_s local.set $0 @@ -55556,18 +55628,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0103 end end @@ -55575,27 +55647,29 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 6640 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6640 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|04104 - local.get $2 - local.get $9 + local.get $1 + local.get $7 i32.gt_s if - local.get $9 + local.get $7 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_s local.set $0 @@ -55603,18 +55677,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $9 - local.get $4 + local.get $7 + local.get $3 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 drop - local.get $9 + local.get $7 i32.const 1 i32.add - local.set $9 + local.set $7 br $for-loop|04104 end end @@ -55626,9 +55700,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55644,41 +55716,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 6672 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6672 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0105 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $13 + local.get $7 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u local.set $0 @@ -55686,18 +55758,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0105 end end @@ -55705,27 +55777,29 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 6704 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6704 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|04106 - local.get $2 - local.get $9 + local.get $1 + local.get $7 i32.gt_s if - local.get $9 + local.get $7 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u local.set $0 @@ -55733,18 +55807,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $9 - local.get $4 + local.get $7 + local.get $3 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 drop - local.get $9 + local.get $7 i32.const 1 i32.add - local.set $9 + local.set $7 br $for-loop|04106 end end @@ -55756,9 +55830,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55774,41 +55846,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 6736 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6736 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0107 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $13 + local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.set $0 @@ -55816,18 +55888,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0107 end end @@ -55835,27 +55907,29 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 6768 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6768 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|04108 - local.get $2 - local.get $9 + local.get $1 + local.get $7 i32.gt_s if - local.get $9 + local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.set $0 @@ -55863,18 +55937,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $9 - local.get $4 + local.get $7 + local.get $3 i32.const 6768 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 drop - local.get $9 + local.get $7 i32.const 1 i32.add - local.set $9 + local.set $7 br $for-loop|04108 end end @@ -55886,9 +55960,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $13 - i32.const 0 - local.set $9 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55904,41 +55976,41 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 6 call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 6800 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6800 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0109 - local.get $2 - local.get $13 + local.get $1 + local.get $7 i32.gt_s if - local.get $13 + local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.set $0 @@ -55946,18 +56018,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $13 - local.get $4 + local.get $7 + local.get $3 i32.const 6800 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $13 + local.get $7 i32.const 1 i32.add - local.set $13 + local.set $7 br $for-loop|0109 end end @@ -55965,27 +56037,29 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 6832 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 6832 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|04110 - local.get $2 - local.get $9 + local.get $1 + local.get $7 i32.gt_s if - local.get $9 + local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.set $0 @@ -55993,18 +56067,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $9 - local.get $4 + local.get $7 + local.get $3 i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 drop - local.get $9 + local.get $7 i32.const 1 i32.add - local.set $9 + local.set $7 br $for-loop|04110 end end @@ -56016,9 +56090,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 - i32.const 0 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56048,10 +56120,10 @@ i32.const 2 i64.const 6 call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 6864 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6864 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 @@ -56062,21 +56134,21 @@ local.set $0 loop $for-loop|0112 local.get $0 - local.get $9 + local.get $1 i32.gt_s if - local.get $9 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $9 + local.get $11 + local.get $1 local.get $3 i32.const 6864 i32.load @@ -56084,10 +56156,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0112 end end @@ -56095,13 +56167,15 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 6896 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6896 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 + i32.const 0 + local.set $1 local.get $3 i32.load offset=8 i32.const 3 @@ -56109,21 +56183,21 @@ local.set $0 loop $for-loop|04113 local.get $0 - local.get $8 + local.get $1 i32.gt_s if - local.get $8 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $8 + local.get $11 + local.get $1 local.get $3 i32.const 6896 i32.load @@ -56131,10 +56205,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 drop - local.get $8 + local.get $1 i32.const 1 i32.add - local.set $8 + local.set $1 br $for-loop|04113 end end @@ -56146,9 +56220,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 - i32.const 0 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56178,10 +56250,10 @@ i32.const 2 i64.const 6 call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 6928 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6928 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 @@ -56192,21 +56264,21 @@ local.set $0 loop $for-loop|0114 local.get $0 - local.get $9 + local.get $1 i32.gt_s if - local.get $9 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $9 + local.get $11 + local.get $1 local.get $3 i32.const 6928 i32.load @@ -56214,10 +56286,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0114 end end @@ -56225,13 +56297,15 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 6960 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6960 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 + i32.const 0 + local.set $1 local.get $3 i32.load offset=8 i32.const 3 @@ -56239,21 +56313,21 @@ local.set $0 loop $for-loop|04115 local.get $0 - local.get $8 + local.get $1 i32.gt_s if - local.get $8 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $8 + local.get $11 + local.get $1 local.get $3 i32.const 6960 i32.load @@ -56261,10 +56335,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 drop - local.get $8 + local.get $1 i32.const 1 i32.add - local.set $8 + local.set $1 br $for-loop|04115 end end @@ -56276,9 +56350,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 - i32.const 0 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56308,10 +56380,10 @@ i32.const 2 f32.const 6 call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 6992 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 6992 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 @@ -56322,21 +56394,21 @@ local.set $0 loop $for-loop|0116 local.get $0 - local.get $9 + local.get $1 i32.gt_s if - local.get $9 + local.get $1 i32.const 2 i32.shl local.get $2 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $5 - local.get $9 + local.get $6 + local.get $1 local.get $3 i32.const 6992 i32.load @@ -56344,10 +56416,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0116 end end @@ -56355,13 +56427,15 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 7024 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 + i32.const 0 + local.set $1 local.get $3 i32.load offset=8 i32.const 2 @@ -56369,21 +56443,21 @@ local.set $0 loop $for-loop|04117 local.get $0 - local.get $8 + local.get $1 i32.gt_s if - local.get $8 + local.get $1 i32.const 2 i32.shl local.get $2 i32.add f32.load - local.set $5 + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $5 - local.get $8 + local.get $6 + local.get $1 local.get $3 i32.const 7024 i32.load @@ -56391,10 +56465,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 drop - local.get $8 + local.get $1 i32.const 1 i32.add - local.set $8 + local.set $1 br $for-loop|04117 end end @@ -56406,9 +56480,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 - i32.const 0 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56438,10 +56510,10 @@ i32.const 2 f64.const 6 call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7056 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 7056 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 @@ -56452,21 +56524,21 @@ local.set $0 loop $for-loop|0118 local.get $0 - local.get $9 + local.get $1 i32.gt_s if - local.get $9 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add f64.load - local.set $7 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $9 + local.get $8 + local.get $1 local.get $3 i32.const 7056 i32.load @@ -56474,10 +56546,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0118 end end @@ -56485,13 +56557,15 @@ end i32.eqz br_if $folding-inner29 - global.get $~lib/memory/__stack_pointer - i32.const 7088 - i32.store offset=4 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 7088 + i32.store offset=4 local.get $3 i32.load offset=4 local.set $2 + i32.const 0 + local.set $1 local.get $3 i32.load offset=8 i32.const 3 @@ -56499,21 +56573,21 @@ local.set $0 loop $for-loop|04119 local.get $0 - local.get $8 + local.get $1 i32.gt_s if - local.get $8 + local.get $1 i32.const 3 i32.shl local.get $2 i32.add f64.load - local.set $7 + local.set $8 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 local.get $8 + local.get $1 local.get $3 i32.const 7088 i32.load @@ -56521,10 +56595,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 drop - local.get $8 + local.get $1 i32.const 1 i32.add - local.set $8 + local.set $1 br $for-loop|04119 end end @@ -56555,14 +56629,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -56572,7 +56646,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -56582,7 +56656,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -56592,32 +56666,34 @@ global.get $~lib/memory/__stack_pointer i32.const 7200 i32.store offset=8 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + i32.const 0 + local.set $7 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|0116120 - local.get $2 - local.get $41 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $41 + local.get $2 + local.get $7 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $41 - local.get $4 + local.get $7 + local.get $3 i32.const 7200 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $41 + local.get $7 i32.const 1 i32.add - local.set $41 + local.set $7 br $for-loop|0116120 end end @@ -56649,14 +56725,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -56667,7 +56743,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -56678,7 +56754,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -56689,32 +56765,34 @@ global.get $~lib/memory/__stack_pointer i32.const 7232 i32.store offset=8 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + i32.const 0 + local.set $7 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|0121 - local.get $2 - local.get $42 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $42 + local.get $2 + local.get $7 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $42 - local.get $4 + local.get $7 + local.get $3 i32.const 7232 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $42 + local.get $7 i32.const 1 i32.add - local.set $42 + local.set $7 br $for-loop|0121 end end @@ -56746,14 +56824,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -56764,7 +56842,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -56775,7 +56853,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -56786,32 +56864,34 @@ global.get $~lib/memory/__stack_pointer i32.const 7264 i32.store offset=8 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 + i32.const 0 + local.set $7 + local.get $3 + i32.load offset=8 + local.set $1 loop $for-loop|0128 - local.get $2 - local.get $43 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $43 + local.get $2 + local.get $7 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $43 - local.get $4 + local.get $7 + local.get $3 i32.const 7264 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $43 + local.get $7 i32.const 1 i32.add - local.set $43 + local.set $7 br $for-loop|0128 end end @@ -56843,14 +56923,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -56860,7 +56940,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -56870,7 +56950,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -56880,36 +56960,38 @@ global.get $~lib/memory/__stack_pointer i32.const 7296 i32.store offset=8 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0133 - local.get $2 - local.get $44 + local.get $1 + local.get $7 i32.gt_s if - local.get $44 + local.get $7 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $44 - local.get $4 + local.get $7 + local.get $3 i32.const 7296 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $44 + local.get $7 i32.const 1 i32.add - local.set $44 + local.set $7 br $for-loop|0133 end end @@ -56941,14 +57023,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -56959,7 +57041,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -56970,7 +57052,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -56981,36 +57063,38 @@ global.get $~lib/memory/__stack_pointer i32.const 7328 i32.store offset=8 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0138 - local.get $2 - local.get $45 + local.get $1 + local.get $7 i32.gt_s if - local.get $45 + local.get $7 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $45 - local.get $4 + local.get $7 + local.get $3 i32.const 7328 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $45 + local.get $7 i32.const 1 i32.add - local.set $45 + local.set $7 br $for-loop|0138 end end @@ -57042,14 +57126,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -57058,7 +57142,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -57067,7 +57151,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -57076,36 +57160,38 @@ global.get $~lib/memory/__stack_pointer i32.const 7360 i32.store offset=8 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0143 - local.get $2 - local.get $46 + local.get $1 + local.get $7 i32.gt_s if - local.get $46 + local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $46 - local.get $4 + local.get $7 + local.get $3 i32.const 7360 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $46 + local.get $7 i32.const 1 i32.add - local.set $46 + local.set $7 br $for-loop|0143 end end @@ -57137,14 +57223,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -57153,7 +57239,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -57162,7 +57248,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -57171,36 +57257,38 @@ global.get $~lib/memory/__stack_pointer i32.const 7392 i32.store offset=8 - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + i32.const 0 + local.set $7 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 + local.set $1 loop $for-loop|0148 - local.get $2 - local.get $47 + local.get $1 + local.get $7 i32.gt_s if - local.get $47 + local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $47 - local.get $4 + local.get $7 + local.get $3 i32.const 7392 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $47 + local.get $7 i32.const 1 i32.add - local.set $47 + local.set $7 br $for-loop|0148 end end @@ -57232,14 +57320,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 7152 i32.const 0 @@ -57249,7 +57337,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 1 i32.const 7152 i32.const 1 @@ -57259,7 +57347,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 i32.const 7152 i32.const 2 @@ -57269,36 +57357,38 @@ global.get $~lib/memory/__stack_pointer i32.const 7424 i32.store offset=8 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + i32.const 0 + local.set $7 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0153 local.get $0 - local.get $48 + local.get $7 i32.gt_s if - local.get $48 + local.get $7 i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $48 - local.get $3 + local.get $7 + local.get $2 i32.const 7424 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $48 + local.get $7 i32.const 1 i32.add - local.set $48 + local.set $7 br $for-loop|0153 end end @@ -57330,14 +57420,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 7152 i32.const 0 @@ -57347,7 +57437,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 1 i32.const 7152 i32.const 1 @@ -57357,7 +57447,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 i32.const 7152 i32.const 2 @@ -57367,36 +57457,38 @@ global.get $~lib/memory/__stack_pointer i32.const 7456 i32.store offset=8 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + i32.const 0 + local.set $7 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0158 local.get $0 - local.get $49 + local.get $7 i32.gt_s if - local.get $49 + local.get $7 i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $49 - local.get $3 + local.get $7 + local.get $2 i32.const 7456 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $49 + local.get $7 i32.const 1 i32.add - local.set $49 + local.set $7 br $for-loop|0158 end end @@ -57428,14 +57520,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 7152 i32.const 0 @@ -57445,7 +57537,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 1 i32.const 7152 i32.const 1 @@ -57455,7 +57547,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 i32.const 7152 i32.const 2 @@ -57465,36 +57557,38 @@ global.get $~lib/memory/__stack_pointer i32.const 7488 i32.store offset=8 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + i32.const 0 + local.set $7 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|0163 local.get $0 - local.get $50 + local.get $7 i32.gt_s if - local.get $50 + local.get $7 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $50 - local.get $3 + local.get $7 + local.get $2 i32.const 7488 i32.load call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $50 + local.get $7 i32.const 1 i32.add - local.set $50 + local.set $7 br $for-loop|0163 end end @@ -57526,14 +57620,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 7152 i32.const 0 @@ -57543,7 +57637,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 1 i32.const 7152 i32.const 1 @@ -57553,7 +57647,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2 i32.const 7152 i32.const 2 @@ -57563,36 +57657,38 @@ global.get $~lib/memory/__stack_pointer i32.const 7520 i32.store offset=8 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 - local.get $3 + local.set $1 + i32.const 0 + local.set $7 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0168 local.get $0 - local.get $51 + local.get $7 i32.gt_s if - local.get $51 + local.get $7 i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $51 - local.get $3 + local.get $7 + local.get $2 i32.const 7520 i32.load call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $51 + local.get $7 i32.const 1 i32.add - local.set $51 + local.set $7 br $for-loop|0168 end end @@ -57605,7 +57701,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57640,28 +57736,28 @@ local.tee $0 i32.store offset=8 loop $for-loop|0122 + local.get $1 local.get $3 - local.get $9 - i32.gt_s + i32.lt_s if local.get $2 - local.get $9 + local.get $1 i32.const 7616 - local.get $9 + local.get $1 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set local.get $0 - local.get $9 + local.get $1 i32.const 7616 - local.get $9 + local.get $1 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0122 end end @@ -57671,29 +57767,29 @@ i32.load offset=8 call $~lib/util/bytes/REVERSE i32.const 0 - local.set $9 + local.set $1 loop $for-loop|1 + local.get $1 local.get $3 - local.get $9 - i32.gt_s + i32.lt_s if local.get $2 - local.get $9 + local.get $1 call $~lib/typedarray/Int8Array#__get i32.const 7616 local.get $3 i32.const 1 i32.sub - local.get $9 + local.get $1 i32.sub call $~lib/array/Array#__get i32.extend8_s i32.ne br_if $folding-inner31 - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|1 end end @@ -57742,7 +57838,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57777,30 +57873,30 @@ local.tee $0 i32.store offset=8 loop $for-loop|0123 + local.get $1 local.get $3 - local.get $9 - i32.gt_s + i32.lt_s if local.get $2 - local.get $9 + local.get $1 i32.const 7616 - local.get $9 + local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set local.get $0 - local.get $9 + local.get $1 i32.const 7616 - local.get $9 + local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0123 end end @@ -57810,30 +57906,30 @@ i32.load offset=8 call $~lib/util/bytes/REVERSE i32.const 0 - local.set $9 + local.set $1 loop $for-loop|1124 + local.get $1 local.get $3 - local.get $9 - i32.gt_s + i32.lt_s if local.get $2 - local.get $9 + local.get $1 call $~lib/typedarray/Uint8Array#__get i32.const 7616 local.get $3 i32.const 1 i32.sub - local.get $9 + local.get $1 i32.sub call $~lib/array/Array#__get i32.const 255 i32.and i32.ne br_if $folding-inner31 - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|1124 end end @@ -57881,7 +57977,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57916,30 +58012,30 @@ local.tee $0 i32.store offset=8 loop $for-loop|0125 + local.get $1 local.get $3 - local.get $9 - i32.gt_s + i32.lt_s if local.get $2 - local.get $9 + local.get $1 i32.const 7616 - local.get $9 + local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set local.get $0 - local.get $9 + local.get $1 i32.const 7616 - local.get $9 + local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0125 end end @@ -57949,30 +58045,30 @@ i32.load offset=8 call $~lib/util/bytes/REVERSE i32.const 0 - local.set $9 + local.set $1 loop $for-loop|1126 + local.get $1 local.get $3 - local.get $9 - i32.gt_s + i32.lt_s if local.get $2 - local.get $9 + local.get $1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7616 local.get $3 i32.const 1 i32.sub - local.get $9 + local.get $1 i32.sub call $~lib/array/Array#__get i32.const 255 i32.and i32.ne br_if $folding-inner31 - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|1126 end end @@ -58020,7 +58116,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58055,28 +58151,28 @@ local.tee $0 i32.store offset=8 loop $for-loop|0127 + local.get $1 local.get $3 - local.get $9 - i32.gt_s + i32.lt_s if local.get $2 - local.get $9 + local.get $1 i32.const 7616 - local.get $9 + local.get $1 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set local.get $0 - local.get $9 + local.get $1 i32.const 7616 - local.get $9 + local.get $1 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0127 end end @@ -58084,29 +58180,29 @@ call $~lib/typedarray/Int16Array#reverse drop i32.const 0 - local.set $9 + local.set $1 loop $for-loop|1128 + local.get $1 local.get $3 - local.get $9 - i32.gt_s + i32.lt_s if local.get $2 - local.get $9 + local.get $1 call $~lib/typedarray/Int16Array#__get i32.const 7616 local.get $3 i32.const 1 i32.sub - local.get $9 + local.get $1 i32.sub call $~lib/array/Array#__get i32.extend16_s i32.ne br_if $folding-inner31 - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|1128 end end @@ -58151,7 +58247,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58186,30 +58282,30 @@ local.tee $0 i32.store offset=8 loop $for-loop|0129 + local.get $1 local.get $3 - local.get $9 - i32.gt_s + i32.lt_s if local.get $2 - local.get $9 + local.get $1 i32.const 7616 - local.get $9 + local.get $1 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set local.get $0 - local.get $9 + local.get $1 i32.const 7616 - local.get $9 + local.get $1 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|0129 end end @@ -58217,30 +58313,30 @@ call $~lib/typedarray/Int16Array#reverse drop i32.const 0 - local.set $9 + local.set $1 loop $for-loop|1130 + local.get $1 local.get $3 - local.get $9 - i32.gt_s + i32.lt_s if local.get $2 - local.get $9 + local.get $1 call $~lib/typedarray/Uint16Array#__get i32.const 7616 local.get $3 i32.const 1 i32.sub - local.get $9 + local.get $1 i32.sub call $~lib/array/Array#__get i32.const 65535 i32.and i32.ne br_if $folding-inner31 - local.get $9 + local.get $1 i32.const 1 i32.add - local.set $9 + local.set $1 br $for-loop|1130 end end @@ -58308,27 +58404,29 @@ local.get $0 i32.const 7628 i32.load - local.tee $9 + local.tee $10 call $~lib/typedarray/Int32Array#constructor - local.tee $8 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 call $~lib/typedarray/Int32Array#constructor - local.tee $6 + local.tee $7 i32.store offset=8 + i32.const 0 + local.set $1 loop $for-loop|0171 local.get $1 - local.get $9 + local.get $10 i32.lt_s if - local.get $8 + local.get $9 local.get $1 i32.const 7616 local.get $1 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $7 local.get $1 i32.const 7616 local.get $1 @@ -58342,11 +58440,11 @@ end end i32.const 0 - local.set $15 - local.get $8 + local.set $1 + local.get $9 i32.load offset=4 - local.set $4 - local.get $8 + local.set $5 + local.get $9 i32.load offset=8 i32.const 2 i32.shr_u @@ -58357,42 +58455,42 @@ local.get $0 i32.const 1 i32.shr_u - local.set $3 + local.set $4 local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $3 loop $while-continue|0 - local.get $3 - local.get $15 - i32.gt_u + local.get $1 + local.get $4 + i32.lt_u if - local.get $15 + local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $0 i32.load - local.set $1 + local.set $2 local.get $0 - local.get $2 - local.get $15 + local.get $3 + local.get $1 i32.sub i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $0 i32.load i32.store local.get $0 - local.get $1 + local.get $2 i32.store - local.get $15 + local.get $1 i32.const 1 i32.add - local.set $15 + local.set $1 br $while-continue|0 end end @@ -58401,14 +58499,14 @@ local.set $1 loop $for-loop|1131 local.get $1 - local.get $9 + local.get $10 i32.lt_s if - local.get $8 + local.get $9 local.get $1 call $~lib/typedarray/Int32Array#__get i32.const 7616 - local.get $9 + local.get $10 i32.const 1 i32.sub local.get $1 @@ -58424,20 +58522,20 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.const 4 i32.const 8 call $~lib/typedarray/Int32Array#subarray - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=12 i32.const 0 - local.set $15 - local.get $6 + local.set $1 + local.get $7 i32.load offset=4 - local.set $4 - local.get $6 + local.set $5 + local.get $7 i32.load offset=8 i32.const 2 i32.shr_u @@ -58448,67 +58546,67 @@ local.get $0 i32.const 1 i32.shr_u - local.set $3 + local.set $4 local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $3 loop $while-continue|0133 - local.get $3 - local.get $15 - i32.gt_u + local.get $1 + local.get $4 + i32.lt_u if - local.get $15 + local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $0 i32.load - local.set $1 + local.set $2 local.get $0 - local.get $2 - local.get $15 + local.get $3 + local.get $1 i32.sub i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $0 i32.load i32.store local.get $0 - local.get $1 + local.get $2 i32.store - local.get $15 + local.get $1 i32.const 1 i32.add - local.set $15 + local.set $1 br $while-continue|0133 end end end - local.get $6 + local.get $7 i32.store offset=16 - local.get $6 + local.get $7 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 8 i32.ne br_if $folding-inner32 - local.get $6 + local.get $7 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 7 i32.ne br_if $folding-inner33 - local.get $6 + local.get $7 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 6 i32.ne br_if $folding-inner34 - local.get $6 + local.get $7 i32.const 3 call $~lib/typedarray/Int32Array#__get i32.const 5 @@ -58542,45 +58640,47 @@ local.get $0 i32.const 7628 i32.load - local.tee $9 + local.tee $10 call $~lib/typedarray/Uint32Array#constructor - local.tee $8 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 call $~lib/typedarray/Uint32Array#constructor - local.tee $6 + local.tee $7 i32.store offset=8 + i32.const 0 + local.set $1 loop $for-loop|021134 - local.get $9 - local.get $19 - i32.gt_s + local.get $1 + local.get $10 + i32.lt_s if - local.get $8 - local.get $19 + local.get $9 + local.get $1 i32.const 7616 - local.get $19 + local.get $1 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $6 - local.get $19 + local.get $7 + local.get $1 i32.const 7616 - local.get $19 + local.get $1 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $19 + local.get $1 i32.const 1 i32.add - local.set $19 + local.set $1 br $for-loop|021134 end end i32.const 0 - local.set $15 - local.get $8 + local.set $1 + local.get $9 i32.load offset=4 - local.set $4 - local.get $8 + local.set $5 + local.get $9 i32.load offset=8 i32.const 2 i32.shr_u @@ -58591,86 +58691,86 @@ local.get $0 i32.const 1 i32.shr_u - local.set $3 + local.set $4 local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $3 loop $while-continue|0136 - local.get $3 - local.get $15 - i32.gt_u + local.get $1 + local.get $4 + i32.lt_u if - local.get $15 + local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $0 i32.load - local.set $1 + local.set $2 local.get $0 - local.get $2 - local.get $15 + local.get $3 + local.get $1 i32.sub i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $0 i32.load i32.store local.get $0 - local.get $1 + local.get $2 i32.store - local.get $15 + local.get $1 i32.const 1 i32.add - local.set $15 + local.set $1 br $while-continue|0136 end end end i32.const 0 - local.set $19 + local.set $1 loop $for-loop|124 - local.get $9 - local.get $19 - i32.gt_s + local.get $1 + local.get $10 + i32.lt_s if - local.get $8 - local.get $19 + local.get $9 + local.get $1 call $~lib/typedarray/Uint32Array#__get i32.const 7616 - local.get $9 + local.get $10 i32.const 1 i32.sub - local.get $19 + local.get $1 i32.sub call $~lib/array/Array#__get i32.ne br_if $folding-inner31 - local.get $19 + local.get $1 i32.const 1 i32.add - local.set $19 + local.set $1 br $for-loop|124 end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.const 8 call $~lib/typedarray/Uint32Array#subarray - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=12 i32.const 0 - local.set $11 - local.get $6 + local.set $1 + local.get $7 i32.load offset=4 - local.set $4 - local.get $6 + local.set $5 + local.get $7 i32.load offset=8 i32.const 2 i32.shr_u @@ -58681,67 +58781,67 @@ local.get $0 i32.const 1 i32.shr_u - local.set $3 + local.set $4 local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $3 loop $while-continue|0138 - local.get $3 - local.get $11 - i32.gt_u + local.get $1 + local.get $4 + i32.lt_u if - local.get $11 + local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $0 i32.load - local.set $1 + local.set $2 local.get $0 - local.get $2 - local.get $11 + local.get $3 + local.get $1 i32.sub i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $0 i32.load i32.store local.get $0 - local.get $1 + local.get $2 i32.store - local.get $11 + local.get $1 i32.const 1 i32.add - local.set $11 + local.set $1 br $while-continue|0138 end end end - local.get $6 + local.get $7 i32.store offset=16 - local.get $6 + local.get $7 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 8 i32.ne br_if $folding-inner32 - local.get $6 + local.get $7 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 7 i32.ne br_if $folding-inner33 - local.get $6 + local.get $7 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 6 i32.ne br_if $folding-inner34 - local.get $6 + local.get $7 i32.const 3 call $~lib/typedarray/Uint32Array#__get i32.const 5 @@ -58776,9 +58876,9 @@ f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $4 i32.load offset=8 @@ -58791,12 +58891,12 @@ i32.load offset=4 local.set $2 loop $while-continue|0139 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -58805,17 +58905,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0139 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -58827,12 +58927,14 @@ unreachable end block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + i32.const 0 + local.set $1 i32.const 0 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $2 i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop @@ -58841,29 +58943,29 @@ local.set $0 loop $while-continue|0140 local.get $1 - local.get $55 - i32.gt_s + local.get $2 + i32.lt_s if i32.const 1 - local.get $55 + local.get $1 i32.const 3 i32.shl local.get $0 i32.add f64.load - local.tee $7 + local.tee $8 f64.const nan:0x8000000000000 f64.eq - local.get $7 - local.get $7 + local.get $8 + local.get $8 f64.ne i32.or br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $55 + local.get $1 i32.const 1 i32.add - local.set $55 + local.set $1 br $while-continue|0140 end end @@ -58888,9 +58990,9 @@ f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $4 i32.load offset=8 @@ -58903,12 +59005,12 @@ i32.load offset=4 local.set $2 loop $while-continue|0141 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -58917,17 +59019,17 @@ f32.const nan:0x400000 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0141 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -58939,12 +59041,14 @@ unreachable end block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + i32.const 0 + local.set $1 i32.const 0 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $2 i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop @@ -58953,29 +59057,29 @@ local.set $0 loop $while-continue|029 local.get $1 - local.get $56 - i32.gt_s + local.get $2 + i32.lt_s if i32.const 1 - local.get $56 + local.get $1 i32.const 2 i32.shl local.get $0 i32.add f32.load - local.tee $5 + local.tee $6 f32.const nan:0x400000 f32.eq - local.get $5 - local.get $5 + local.get $6 + local.get $6 f32.ne i32.or br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $56 + local.get $1 i32.const 1 i32.add - local.set $56 + local.set $1 br $while-continue|029 end end @@ -59064,19 +59168,18 @@ i32.store local.get $1 call $~lib/typedarray/Int8Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59311,19 +59414,18 @@ i32.store local.get $1 call $~lib/typedarray/Int16Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59406,19 +59508,18 @@ i32.store local.get $1 call $~lib/typedarray/Uint16Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59501,19 +59602,18 @@ i32.store local.get $1 call $~lib/typedarray/Int32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59595,210 +59695,207 @@ i32.const 9584 i32.store local.get $1 - call $~lib/typedarray/Uint32Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 5 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Int64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 9584 - i32.store - local.get $1 - call $~lib/typedarray/Int64Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 9584 - i32.store - local.get $1 - call $~lib/typedarray/Uint64Array#join - local.set $1 + call $~lib/typedarray/Uint32Array#join + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Int64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store local.get $1 + call $~lib/typedarray/Uint64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59881,19 +59978,18 @@ i32.store local.get $1 call $~lib/typedarray/Float32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 10800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz @@ -59976,19 +60072,18 @@ i32.store local.get $1 call $~lib/typedarray/Float64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 10800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz @@ -60067,26 +60162,28 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Int8Array#constructor local.tee $4 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|035142 - local.get $6 - local.get $20 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $20 + local.get $1 i32.const 10928 - local.get $20 + local.get $1 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $20 + local.get $1 i32.const 1 i32.add - local.set $20 + local.set $1 br $for-loop|035142 end end @@ -60104,9 +60201,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $4 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60159,24 +60256,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $20 + local.set $1 loop $for-loop|139 - local.get $6 - local.get $20 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $20 + local.get $1 call $~lib/typedarray/Int8Array#__get local.get $0 - local.get $20 + local.get $1 call $~lib/typedarray/Int8Array#__get i32.ne - br_if $folding-inner18 - local.get $20 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $20 + local.set $1 br $for-loop|139 end end @@ -60212,23 +60309,25 @@ call $~lib/typedarray/Uint8Array#constructor local.tee $2 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|044 + local.get $1 local.get $3 - local.get $21 - i32.gt_s + i32.lt_s if local.get $2 - local.get $21 + local.get $1 i32.const 10928 - local.get $21 + local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $21 + local.get $1 i32.const 1 i32.add - local.set $21 + local.set $1 br $for-loop|044 end end @@ -60246,9 +60345,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $2 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $0 @@ -60262,24 +60361,24 @@ local.tee $0 i32.store offset=16 i32.const 0 - local.set $21 + local.set $1 loop $for-loop|149 + local.get $1 local.get $3 - local.get $21 - i32.gt_s + i32.lt_s if local.get $2 - local.get $21 + local.get $1 call $~lib/typedarray/Uint8Array#__get local.get $0 - local.get $21 + local.get $1 call $~lib/typedarray/Uint8Array#__get i32.ne - br_if $folding-inner18 - local.get $21 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $21 + local.set $1 br $for-loop|149 end end @@ -60311,27 +60410,29 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $4 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|054 - local.get $6 - local.get $22 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $22 + local.get $1 i32.const 10928 - local.get $22 + local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $22 + local.get $1 i32.const 1 i32.add - local.set $22 + local.set $1 br $for-loop|054 end end @@ -60349,9 +60450,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $4 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60404,24 +60505,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $22 + local.set $1 loop $for-loop|159 - local.get $6 - local.get $22 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $22 + local.get $1 call $~lib/typedarray/Uint8ClampedArray#__get local.get $0 - local.get $22 + local.get $1 call $~lib/typedarray/Uint8ClampedArray#__get i32.ne - br_if $folding-inner18 - local.get $22 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $22 + local.set $1 br $for-loop|159 end end @@ -60453,26 +60554,28 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Int16Array#constructor local.tee $4 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|064200 - local.get $6 - local.get $23 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $23 + local.get $1 i32.const 10928 - local.get $23 + local.get $1 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $23 + local.get $1 i32.const 1 i32.add - local.set $23 + local.set $1 br $for-loop|064200 end end @@ -60490,9 +60593,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $4 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60518,7 +60621,7 @@ local.tee $1 i32.const 1 i32.and - br_if $folding-inner19 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 @@ -60547,24 +60650,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $23 + local.set $1 loop $for-loop|169 - local.get $6 - local.get $23 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $23 + local.get $1 call $~lib/typedarray/Int16Array#__get local.get $0 - local.get $23 + local.get $1 call $~lib/typedarray/Int16Array#__get i32.ne - br_if $folding-inner18 - local.get $23 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $23 + local.set $1 br $for-loop|169 end end @@ -60596,27 +60699,29 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Uint16Array#constructor local.tee $4 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|074 - local.get $6 - local.get $24 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $24 + local.get $1 i32.const 10928 - local.get $24 + local.get $1 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $24 + local.get $1 i32.const 1 i32.add - local.set $24 + local.set $1 br $for-loop|074 end end @@ -60634,9 +60739,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $4 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60662,7 +60767,7 @@ local.tee $1 i32.const 1 i32.and - br_if $folding-inner19 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 @@ -60691,24 +60796,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $24 + local.set $1 loop $for-loop|179 - local.get $6 - local.get $24 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $24 + local.get $1 call $~lib/typedarray/Uint16Array#__get local.get $0 - local.get $24 + local.get $1 call $~lib/typedarray/Uint16Array#__get i32.ne - br_if $folding-inner18 - local.get $24 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $24 + local.set $1 br $for-loop|179 end end @@ -60740,25 +60845,27 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Int32Array#constructor local.tee $4 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|084146 - local.get $6 - local.get $25 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $25 + local.get $1 i32.const 10928 - local.get $25 + local.get $1 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $25 + local.get $1 i32.const 1 i32.add - local.set $25 + local.set $1 br $for-loop|084146 end end @@ -60776,9 +60883,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $4 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60804,7 +60911,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner19 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 @@ -60833,24 +60940,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $25 + local.set $1 loop $for-loop|189 - local.get $6 - local.get $25 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $25 + local.get $1 call $~lib/typedarray/Int32Array#__get local.get $0 - local.get $25 + local.get $1 call $~lib/typedarray/Int32Array#__get i32.ne - br_if $folding-inner18 - local.get $25 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $25 + local.set $1 br $for-loop|189 end end @@ -60882,25 +60989,27 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Uint32Array#constructor local.tee $4 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|094148 - local.get $6 - local.get $26 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $26 + local.get $1 i32.const 10928 - local.get $26 + local.get $1 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $26 + local.get $1 i32.const 1 i32.add - local.set $26 + local.set $1 br $for-loop|094148 end end @@ -60918,9 +61027,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $4 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -60946,7 +61055,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner19 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 @@ -60975,24 +61084,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $26 + local.set $1 loop $for-loop|199 - local.get $6 - local.get $26 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $26 + local.get $1 call $~lib/typedarray/Uint32Array#__get local.get $0 - local.get $26 + local.get $1 call $~lib/typedarray/Uint32Array#__get i32.ne - br_if $folding-inner18 - local.get $26 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $26 + local.set $1 br $for-loop|199 end end @@ -61024,26 +61133,28 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Int64Array#constructor local.tee $4 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|0104 - local.get $6 - local.get $27 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $27 + local.get $1 i32.const 10928 - local.get $27 + local.get $1 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $27 + local.get $1 i32.const 1 i32.add - local.set $27 + local.set $1 br $for-loop|0104 end end @@ -61061,9 +61172,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $4 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -61089,7 +61200,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner19 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 @@ -61118,24 +61229,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $27 + local.set $1 loop $for-loop|1109 - local.get $6 - local.get $27 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $27 + local.get $1 call $~lib/typedarray/Int64Array#__get local.get $0 - local.get $27 + local.get $1 call $~lib/typedarray/Int64Array#__get i64.ne - br_if $folding-inner18 - local.get $27 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $27 + local.set $1 br $for-loop|1109 end end @@ -61167,26 +61278,28 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Uint64Array#constructor local.tee $4 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|0114151 - local.get $6 - local.get $28 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $28 + local.get $1 i32.const 10928 - local.get $28 + local.get $1 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $28 + local.get $1 i32.const 1 i32.add - local.set $28 + local.set $1 br $for-loop|0114151 end end @@ -61204,9 +61317,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $4 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -61232,7 +61345,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner19 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 @@ -61261,24 +61374,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $28 + local.set $1 loop $for-loop|1119 - local.get $6 - local.get $28 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $28 + local.get $1 call $~lib/typedarray/Uint64Array#__get local.get $0 - local.get $28 + local.get $1 call $~lib/typedarray/Uint64Array#__get i64.ne - br_if $folding-inner18 - local.get $28 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $28 + local.set $1 br $for-loop|1119 end end @@ -61310,26 +61423,28 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Float32Array#constructor local.tee $4 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|0124 - local.get $6 - local.get $29 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $29 + local.get $1 i32.const 10928 - local.get $29 + local.get $1 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $29 + local.get $1 i32.const 1 i32.add - local.set $29 + local.set $1 br $for-loop|0124 end end @@ -61347,9 +61462,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $4 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -61375,7 +61490,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner19 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 @@ -61404,24 +61519,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $29 + local.set $1 loop $for-loop|1129 - local.get $6 - local.get $29 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $29 + local.get $1 call $~lib/typedarray/Float32Array#__get local.get $0 - local.get $29 + local.get $1 call $~lib/typedarray/Float32Array#__get f32.ne - br_if $folding-inner18 - local.get $29 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $29 + local.set $1 br $for-loop|1129 end end @@ -61453,26 +61568,28 @@ local.get $0 i32.const 10940 i32.load - local.tee $6 + local.tee $5 call $~lib/typedarray/Float64Array#constructor local.tee $4 i32.store offset=4 + i32.const 0 + local.set $1 loop $for-loop|0134 - local.get $6 - local.get $30 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $30 + local.get $1 i32.const 10928 - local.get $30 + local.get $1 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $30 + local.get $1 i32.const 1 i32.add - local.set $30 + local.set $1 br $for-loop|0134 end end @@ -61490,9 +61607,9 @@ i32.load i32.sub local.tee $0 + local.get $0 local.get $4 i32.load offset=8 - local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -61518,7 +61635,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner19 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 @@ -61547,24 +61664,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $30 + local.set $1 loop $for-loop|1139 - local.get $6 - local.get $30 - i32.gt_s + local.get $1 + local.get $5 + i32.lt_s if local.get $4 - local.get $30 + local.get $1 call $~lib/typedarray/Float64Array#__get local.get $0 - local.get $30 + local.get $1 call $~lib/typedarray/Float64Array#__get f64.ne - br_if $folding-inner18 - local.get $30 + br_if $folding-inner17 + local.get $1 i32.const 1 i32.add - local.set $30 + local.set $1 br $for-loop|1139 end end @@ -61586,7 +61703,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 + local.tee $7 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 3 @@ -61608,38 +61725,38 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $4 i32.store offset=8 - local.get $3 + local.get $4 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $4 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $4 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $4 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $5 i32.store offset=16 - local.get $4 + local.get $5 i32.const 0 i32.const 300 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $6 + local.get $7 i32.load offset=8 local.get $0 i32.load offset=8 @@ -61649,42 +61766,44 @@ i32.add i32.lt_s br_if $folding-inner20 - local.get $6 + local.get $7 i32.load offset=4 i32.const 1 i32.add - local.set $2 + local.set $3 local.get $0 i32.load offset=4 - local.set $1 + local.set $2 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 + i32.const 0 + local.set $1 loop $for-loop|0145 local.get $0 - local.get $52 + local.get $1 i32.gt_s if - local.get $2 - local.get $52 + local.get $1 + local.get $3 i32.add - local.get $52 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add f32.load - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f32.sub f32.const 0 f32.eq if (result i32) f32.const 0 f32.const 255 - local.get $5 + local.get $6 f32.min f32.max i32.trunc_f32_u @@ -61692,20 +61811,20 @@ i32.const 0 end i32.store8 - local.get $52 + local.get $1 i32.const 1 i32.add - local.set $52 + local.set $1 br $for-loop|0145 end end - local.get $6 - local.get $3 + local.get $7 + local.get $4 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - local.get $6 + local.get $7 i32.load offset=8 - local.get $4 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u @@ -61713,31 +61832,33 @@ i32.add i32.lt_s br_if $folding-inner20 - local.get $6 + local.get $7 i32.load offset=4 i32.const 8 i32.add - local.set $3 - local.get $4 + local.set $4 + local.get $5 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u + local.set $2 + i32.const 0 local.set $1 loop $for-loop|0151 local.get $1 - local.get $53 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $53 + local.get $1 + local.get $4 i32.add - local.get $53 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load local.tee $0 @@ -61754,10 +61875,10 @@ i32.xor i32.and i32.store8 - local.get $53 + local.get $1 i32.const 1 i32.add - local.set $53 + local.set $1 br $for-loop|0151 end end @@ -61770,7 +61891,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $7 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer @@ -61797,25 +61918,25 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 0 i32.const -10 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 2 i32.const 10 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $5 i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set - local.get $6 + local.get $7 i32.load offset=8 local.get $0 i32.load offset=8 @@ -61823,30 +61944,32 @@ i32.shr_u i32.lt_s br_if $folding-inner20 - local.get $6 + local.get $7 i32.load offset=4 - local.set $3 + local.set $4 local.get $0 i32.load offset=4 - local.set $2 + local.set $3 local.get $0 i32.load offset=8 i32.const 2 i32.shr_u + local.set $2 + i32.const 0 local.set $1 loop $for-loop|0157 local.get $1 - local.get $54 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $54 + local.get $1 + local.get $4 i32.add i32.const 255 - local.get $54 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load local.tee $0 @@ -61855,15 +61978,15 @@ i32.gt_u select i32.store8 - local.get $54 + local.get $1 i32.const 1 i32.add - local.set $54 + local.set $1 br $for-loop|0157 end end - local.get $6 - local.get $4 + local.get $7 + local.get $5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> i32.const 10 @@ -61875,9 +61998,11 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $7 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61887,13 +62012,13 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $2 @@ -61913,8 +62038,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -61935,7 +62058,7 @@ unreachable end i32.const 15344 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15344 i32.store @@ -61944,7 +62067,7 @@ i32.load offset=4 local.get $2 i32.load offset=8 - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62001,6 +62124,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62010,13 +62135,13 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $2 @@ -62036,8 +62161,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62058,7 +62181,7 @@ unreachable end i32.const 15408 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15408 i32.store @@ -62067,7 +62190,7 @@ i32.load offset=4 local.get $2 i32.load offset=8 - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62124,6 +62247,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62133,13 +62258,13 @@ i32.lt_s br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $2 @@ -62159,8 +62284,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62181,7 +62304,7 @@ unreachable end i32.const 15472 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15472 i32.store @@ -62190,7 +62313,7 @@ i32.load offset=4 local.get $2 i32.load offset=8 - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62247,6 +62370,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62265,25 +62390,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - i32.const 0 - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62304,38 +62427,38 @@ unreachable end i32.const 15536 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15536 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.get $8 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne br_if $folding-inner36 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne br_if $folding-inner37 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 3 @@ -62344,27 +62467,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15568 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u i32.const 15568 call $~lib/util/sort/SORT - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne br_if $folding-inner39 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne br_if $folding-inner40 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 1 @@ -62374,6 +62497,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62392,25 +62517,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - i32.const 0 - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62431,38 +62554,38 @@ unreachable end i32.const 15600 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15600 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.get $8 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne br_if $folding-inner36 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne br_if $folding-inner37 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 3 @@ -62471,27 +62594,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15632 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u i32.const 15632 call $~lib/util/sort/SORT - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne br_if $folding-inner39 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne br_if $folding-inner40 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 1 @@ -62501,6 +62624,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62519,25 +62644,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - i32.const 0 - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62558,38 +62681,38 @@ unreachable end i32.const 15664 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15664 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.get $8 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne br_if $folding-inner36 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne br_if $folding-inner37 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -62598,27 +62721,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15696 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 15696 call $~lib/util/sort/SORT - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne br_if $folding-inner39 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne br_if $folding-inner40 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 1 @@ -62628,6 +62751,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62646,25 +62771,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - i32.const 0 - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62685,38 +62808,38 @@ unreachable end i32.const 15728 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15728 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.get $8 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne br_if $folding-inner36 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne br_if $folding-inner37 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 3 @@ -62725,27 +62848,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15760 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 15760 call $~lib/util/sort/SORT - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne br_if $folding-inner39 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne br_if $folding-inner40 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 1 @@ -62755,6 +62878,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62773,25 +62898,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $2 i32.const 0 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - i32.const 0 - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62812,38 +62935,38 @@ unreachable end i32.const 15792 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15792 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.get $8 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne br_if $folding-inner36 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne br_if $folding-inner37 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 3 @@ -62852,27 +62975,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15824 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 15824 call $~lib/util/sort/SORT - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne br_if $folding-inner39 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne br_if $folding-inner40 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 1 @@ -62882,6 +63005,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62900,25 +63025,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $2 i32.const 0 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - i32.const 0 - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62939,38 +63062,38 @@ unreachable end i32.const 15856 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15856 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.get $8 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne br_if $folding-inner36 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne br_if $folding-inner37 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 3 @@ -62979,27 +63102,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15888 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 15888 call $~lib/util/sort/SORT - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne br_if $folding-inner39 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne br_if $folding-inner40 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 1 @@ -63009,6 +63132,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -63027,25 +63152,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $2 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $2 i32.const 0 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - i32.const 0 - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63066,38 +63189,38 @@ unreachable end i32.const 15920 - local.set $8 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15920 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.get $8 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne br_if $folding-inner36 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne br_if $folding-inner37 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 3 @@ -63106,27 +63229,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15952 i32.store offset=8 - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 15952 call $~lib/util/sort/SORT - local.get $1 + local.get $2 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne br_if $folding-inner39 - local.get $1 + local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne br_if $folding-inner40 - local.get $1 + local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 1 diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index 8dd4565b37..869db151b0 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -793,43 +793,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 20748 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -840,221 +913,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 20748 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1248 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 20748 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1248 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 20748 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 20748 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1520 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1520 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3639,7 +3637,6 @@ ) (func $start:std/uri (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3656,7 +3653,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.tee $0 i64.const 0 i64.store @@ -3695,7 +3691,7 @@ i32.store i32.const 1472 global.set $~lib/rt/itcms/fromSpace - local.get $1 + local.get $0 i32.const 1056 i32.store offset=8 i32.const 1056 @@ -5175,19 +5171,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -5197,22 +5193,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 20748 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -5226,7 +5222,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -5238,7 +5234,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -5246,15 +5242,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -5262,7 +5258,7 @@ else i32.const 4336 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1376 @@ -5272,7 +5268,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 4340 @@ -5290,25 +5286,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index 88224adf9d..89fc32701f 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -686,43 +686,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17868 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -733,221 +806,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17868 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1120 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17868 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1120 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17868 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17868 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1392 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and + end + if + i32.const 0 + i32.const 1392 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1414,19 +1412,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1436,22 +1434,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17868 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1465,7 +1463,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1477,7 +1475,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1485,15 +1483,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1501,7 +1499,7 @@ else i32.const 1440 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1248 @@ -1511,7 +1509,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -1529,25 +1527,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index 61de130cbe..df0f6c046b 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -405,8 +405,6 @@ i32.load i32.const 32 i32.and - i32.const 0 - i32.ne end local.set $3 local.get $2 @@ -1030,43 +1028,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 22116 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -1077,221 +1148,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 22116 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1280 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 22116 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1280 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 22116 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 22116 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1552 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1552 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/ternary.optimized.wat b/tests/compiler/ternary.optimized.wat index 432be740c1..cff99dff2f 100644 --- a/tests/compiler/ternary.optimized.wat +++ b/tests/compiler/ternary.optimized.wat @@ -21,7 +21,6 @@ select ) (func $ternary/testDropWithTypeMismatch (param $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -38,14 +37,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 local.tee $0 i32.const 0 i32.store local.get $0 i32.const 1056 i32.store - local.get $1 + local.get $0 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index 84b5e47bbc..00cea386d3 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -523,11 +523,11 @@ if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -595,11 +595,11 @@ local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -642,11 +642,11 @@ return end global.get $~lib/rt/itcms/iter - local.tee $1 + local.tee $0 global.get $~lib/rt/itcms/toSpace i32.ne if - local.get $1 + local.get $0 i32.load offset=4 local.tee $3 i32.const -4 @@ -666,19 +666,19 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 18140 i32.lt_u if - local.get $1 + local.get $0 i32.const 0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 else global.get $~lib/rt/itcms/total - local.get $1 + local.get $0 i32.load i32.const -4 i32.and @@ -686,7 +686,7 @@ i32.add i32.sub global.set $~lib/rt/itcms/total - local.get $1 + local.get $0 i32.const 4 i32.add local.tee $3 @@ -697,12 +697,12 @@ i32.eqz if memory.size - local.tee $1 + local.tee $0 i32.const 0 i32.le_s if (result i32) i32.const 1 - local.get $1 + local.get $0 i32.sub memory.grow i32.const 0 @@ -720,11 +720,11 @@ i32.const 0 i32.store loop $for-loop|0 - local.get $0 + local.get $1 i32.const 23 i32.lt_u if - local.get $0 + local.get $1 i32.const 2 i32.shl i32.const 18144 @@ -732,14 +732,14 @@ i32.const 0 i32.store offset=4 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|1 - local.get $1 + local.get $0 i32.const 16 i32.lt_u if - local.get $1 local.get $0 + local.get $1 i32.const 4 i32.shl i32.add @@ -749,17 +749,17 @@ i32.add i32.const 0 i32.store offset=96 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -894,8 +894,7 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.tee $1 - local.get $1 + local.get $0 i32.store offset=4 local.get $0 local.get $0 @@ -976,20 +975,20 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 1056 i32.store - local.get $2 + local.get $1 i32.const 1216 i32.store offset=8 - local.get $2 + local.get $1 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -1114,19 +1113,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1136,22 +1135,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18140 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1165,7 +1164,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1177,7 +1176,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1185,15 +1184,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1201,7 +1200,7 @@ else i32.const 1728 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1488 @@ -1211,7 +1210,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1732 @@ -1229,25 +1228,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index 83ff1586a7..d5176a0ff9 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -818,43 +818,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 18220 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -865,221 +938,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 18220 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1424 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 18220 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1424 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 18220 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 18220 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1696 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1696 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -1782,8 +1780,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $2 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1936,19 +1934,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1958,22 +1956,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18220 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1987,7 +1985,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1999,7 +1997,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -2007,15 +2005,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -2023,7 +2021,7 @@ else i32.const 1792 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1552 @@ -2033,7 +2031,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1796 @@ -2051,25 +2049,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 diff --git a/tests/compiler/unary.optimized.wat b/tests/compiler/unary.optimized.wat index fce7445239..187f41a7a7 100644 --- a/tests/compiler/unary.optimized.wat +++ b/tests/compiler/unary.optimized.wat @@ -34,8 +34,6 @@ global.set $unary/i i32.const -2 global.set $unary/i - i32.const -2 - global.set $unary/i i32.const 2 global.set $unary/i i32.const 0 @@ -78,8 +76,6 @@ global.set $unary/I i64.const -2 global.set $unary/I - i64.const -2 - global.set $unary/I i64.const 2 global.set $unary/I i64.const 0 diff --git a/tests/compiler/wasi/seed.optimized.wat b/tests/compiler/wasi/seed.optimized.wat index 1dd4b8acc5..07eb13b218 100644 --- a/tests/compiler/wasi/seed.optimized.wat +++ b/tests/compiler/wasi/seed.optimized.wat @@ -12,8 +12,7 @@ (export "_start" (func $~start)) (func $wasi/seed/test (result f64) (local $0 i64) - (local $1 i32) - (local $2 i64) + (local $1 i64) global.get $~lib/math/random_seeded i32.eqz if @@ -34,74 +33,74 @@ i64.eqz select local.tee $0 - local.get $0 i64.const 33 i64.shr_u + local.get $0 i64.xor i64.const -49064778989728563 i64.mul local.tee $0 - local.get $0 i64.const 33 i64.shr_u + local.get $0 i64.xor i64.const -4265267296055464877 i64.mul local.tee $0 - local.get $0 i64.const 33 i64.shr_u + local.get $0 i64.xor global.set $~lib/math/random_state0_64 global.get $~lib/math/random_state0_64 i64.const -1 i64.xor local.tee $0 - local.get $0 i64.const 33 i64.shr_u + local.get $0 i64.xor i64.const -49064778989728563 i64.mul local.tee $0 - local.get $0 i64.const 33 i64.shr_u + local.get $0 i64.xor i64.const -4265267296055464877 i64.mul local.tee $0 - local.get $0 i64.const 33 i64.shr_u + local.get $0 i64.xor global.set $~lib/math/random_state1_64 i32.const 1 global.set $~lib/math/random_seeded end global.get $~lib/math/random_state0_64 - local.set $0 + local.set $1 global.get $~lib/math/random_state1_64 - local.tee $2 + local.tee $0 global.set $~lib/math/random_state0_64 - local.get $2 - local.get $0 + local.get $1 i64.const 23 i64.shl - local.get $0 + local.get $1 i64.xor - local.tee $0 - local.get $0 + local.tee $1 i64.const 17 i64.shr_u + local.get $1 i64.xor + local.get $0 i64.xor - local.get $2 + local.get $0 i64.const 26 i64.shr_u i64.xor global.set $~lib/math/random_state1_64 - local.get $2 + local.get $0 i64.const 12 i64.shr_u i64.const 4607182418800017408 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 375eebe3de..631d3ecd27 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -3252,24 +3252,24 @@ (local $9 i32) (local $10 i32) i32.const 1056 - local.set $6 + local.set $7 i32.const 1052 i32.load i32.const 1056 i32.add local.set $8 loop $while-continue|0 - local.get $6 + local.get $7 local.get $8 i32.lt_u if - local.get $6 + local.get $7 i32.load16_u local.tee $9 i32.const 128 i32.lt_u if (result i32) - local.get $7 + local.get $6 i32.const 1 i32.add else @@ -3277,7 +3277,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $7 + local.get $6 i32.const 2 i32.add else @@ -3287,40 +3287,40 @@ i32.const 55296 i32.eq local.get $8 - local.get $6 + local.get $7 i32.const 2 i32.add i32.gt_u i32.and if - local.get $6 + local.get $7 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $7 - i32.const 4 - i32.add - local.set $7 local.get $6 i32.const 4 i32.add local.set $6 + local.get $7 + i32.const 4 + i32.add + local.set $7 br $while-continue|0 end end - local.get $7 + local.get $6 i32.const 3 i32.add end end - local.set $7 - local.get $6 + local.set $6 + local.get $7 i32.const 2 i32.add - local.set $6 + local.set $7 br $while-continue|0 end end @@ -3331,9 +3331,9 @@ end global.get $~lib/rt/tlsf/ROOT local.set $8 - local.get $7 + local.get $6 i32.const 56 - local.get $7 + local.get $6 i32.const 56 i32.gt_s select @@ -3365,7 +3365,7 @@ select local.tee $9 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $7 i32.eqz if memory.size @@ -3430,7 +3430,7 @@ local.get $8 local.get $9 call $~lib/rt/tlsf/searchBlock - local.tee $6 + local.tee $7 i32.eqz if i32.const 0 @@ -3441,7 +3441,7 @@ unreachable end end - local.get $6 + local.get $7 i32.load i32.const -4 i32.and @@ -3456,11 +3456,11 @@ unreachable end local.get $8 - local.get $6 + local.get $7 call $~lib/rt/tlsf/removeBlock - local.get $6 + local.get $7 i32.load - local.set $7 + local.set $6 local.get $9 i32.const 4 i32.add @@ -3474,7 +3474,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $7 + local.get $6 i32.const -4 i32.and local.get $9 @@ -3483,19 +3483,19 @@ i32.const 16 i32.ge_u if - local.get $6 local.get $7 + local.get $6 i32.const 2 i32.and local.get $9 i32.or i32.store local.get $9 - local.get $6 + local.get $7 i32.const 4 i32.add i32.add - local.tee $7 + local.tee $6 local.get $10 i32.const 4 i32.sub @@ -3503,30 +3503,30 @@ i32.or i32.store local.get $8 - local.get $7 + local.get $6 call $~lib/rt/tlsf/insertBlock else - local.get $6 local.get $7 + local.get $6 i32.const -2 i32.and i32.store - local.get $6 + local.get $7 i32.const 4 i32.add - local.get $6 + local.get $7 i32.load i32.const -4 i32.and i32.add - local.tee $7 - local.get $7 + local.tee $6 + local.get $6 i32.load i32.const -3 i32.and i32.store end - local.get $6 + local.get $7 i32.const 4 i32.add local.tee $6 diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index c8cae21b13..34acde17ff 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -674,43 +674,116 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace + block $break|0 + block $case2|0 + block $case1|0 + block $case0|0 + global.get $~lib/rt/itcms/state + br_table $case0|0 $case1|0 $case2|0 $break|0 + end + i32.const 1 + global.set $~lib/rt/itcms/state + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/white + i32.eqz + local.set $1 + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + loop $while-continue|1 + global.get $~lib/rt/itcms/toSpace + local.get $0 + i32.ne + if + local.get $0 global.set $~lib/rt/itcms/iter - br $folding-inner0 + local.get $0 + i32.load offset=4 + i32.const 3 + i32.and + local.get $1 + i32.ne + if + local.get $0 + local.get $1 + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + i32.or + i32.store offset=4 + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $0 + i32.const 20 + i32.add + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + return + end + local.get $0 + i32.load offset=4 + i32.const -4 + i32.and + local.set $0 + br $while-continue|1 + end + end + i32.const 0 + global.set $~lib/rt/itcms/visitCount + call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/iter + i32.load offset=4 + i32.const -4 + i32.and + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17908 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 global.get $~lib/rt/itcms/iter i32.load offset=4 i32.const -4 i32.and local.set $0 - loop $while-continue|1 + loop $while-continue|2 global.get $~lib/rt/itcms/toSpace local.get $0 i32.ne if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -721,221 +794,146 @@ i32.and i32.or i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount local.get $0 i32.const 20 i32.add call $~lib/rt/__visit_members - br $folding-inner0 end local.get $0 i32.load offset=4 i32.const -4 i32.and local.set $0 - br $while-continue|1 + br $while-continue|2 end end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots + global.get $~lib/rt/itcms/fromSpace + local.set $0 global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter + global.set $~lib/rt/itcms/fromSpace + local.get $0 + global.set $~lib/rt/itcms/toSpace + local.get $1 + global.set $~lib/rt/itcms/white + local.get $0 i32.load offset=4 i32.const -4 i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17908 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - global.get $~lib/rt/itcms/toSpace - local.get $0 - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - br $folding-inner0 + global.set $~lib/rt/itcms/iter + i32.const 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace + global.get $~lib/rt/itcms/visitCount + return + end + global.get $~lib/rt/itcms/iter + local.tee $0 + global.get $~lib/rt/itcms/toSpace + i32.ne + if + local.get $0 + i32.load offset=4 + local.tee $1 + i32.const -4 + i32.and + global.set $~lib/rt/itcms/iter + global.get $~lib/rt/itcms/white + i32.eqz + local.get $1 + i32.const 3 + i32.and i32.ne + if + i32.const 0 + i32.const 1168 + i32.const 228 + i32.const 20 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 17908 + i32.lt_u if local.get $0 - i32.load offset=4 - local.tee $1 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + else + global.get $~lib/rt/itcms/total + local.get $0 + i32.load i32.const -4 i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1168 - i32.const 228 - i32.const 20 - call $~lib/builtins/abort - unreachable - end + i32.const 4 + i32.add + i32.sub + global.set $~lib/rt/itcms/total local.get $0 + i32.const 4 + i32.add + local.tee $0 i32.const 17908 - i32.lt_u + i32.ge_u if + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and i32.const 4 - i32.add i32.sub - global.set $~lib/rt/itcms/total + local.set $2 local.get $0 - i32.const 4 - i32.add - local.tee $0 - i32.const 17908 - i32.ge_u - if - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - i32.const 15 - i32.and + i32.const 15 + i32.and + i32.const 1 + local.get $0 + select + if (result i32) i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $2 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1440 - i32.const 559 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + else local.get $2 i32.load i32.const 1 - i32.or - i32.store - local.get $2 - call $~lib/rt/tlsf/insertBlock + i32.and end + if + i32.const 0 + i32.const 1440 + i32.const 559 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $2 + i32.load + i32.const 1 + i32.or + i32.store + local.get $2 + call $~lib/rt/tlsf/insertBlock end - i32.const 10 - return end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.tee $1 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + i32.const 10 + return end + global.get $~lib/rt/itcms/toSpace + local.tee $0 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.store offset=8 i32.const 0 - return + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/visitCount + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (result i32) (local $1 i32) @@ -999,31 +997,23 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) i32.const 10 - local.set $0 + local.set $3 loop $while-continue|0 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.const 1 i32.sub - local.set $0 - local.get $10 + local.set $3 + local.get $1 i32.const 1 i32.add - local.set $10 + local.set $1 br $while-continue|0 end end - local.get $0 + local.get $3 if i32.const 0 i32.const 1056 @@ -1032,7 +1022,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $1 i32.const 10 i32.ne if @@ -1044,33 +1034,35 @@ unreachable end i32.const 10 - local.set $0 + local.set $3 + i32.const 0 + local.set $1 loop $while-continue|01 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.const 1 i32.sub - local.set $0 - local.get $1 + local.set $3 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 loop $while-continue|1 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.const 1 i32.sub - local.set $0 - local.get $11 + local.set $3 + local.get $1 i32.const 1 i32.add - local.set $11 + local.set $1 br $while-continue|1 end end - local.get $0 + local.get $3 if i32.const 0 i32.const 1056 @@ -1079,7 +1071,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $1 i32.const 9 i32.ne if @@ -1093,7 +1085,7 @@ br $while-continue|01 end end - local.get $0 + local.get $3 if i32.const 0 i32.const 1056 @@ -1102,7 +1094,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.ne if @@ -1113,7 +1105,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $1 i32.const 9 i32.ne if @@ -1125,25 +1117,27 @@ unreachable end i32.const 1 - local.set $0 + local.set $1 + i32.const 0 + local.set $2 loop $while-continue|03 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 if (result i32) - local.get $9 + local.get $2 i32.const 1 i32.add - local.tee $9 + local.tee $2 else i32.const 0 end br_if $while-continue|03 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -1154,7 +1148,7 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $2 i32.const 1 i32.ne if @@ -1165,16 +1159,18 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $3 loop $while-continue|05 - local.get $8 + local.get $3 i32.const 1 i32.add - local.tee $8 + local.tee $3 i32.const 10 i32.ne br_if $while-continue|05 end - local.get $8 + local.get $3 i32.const 10 i32.ne if @@ -1185,16 +1181,18 @@ call $~lib/builtins/abort unreachable end + i32.const 0 + local.set $3 loop $while-continue|07 - local.get $7 + local.get $3 i32.const 1 i32.add - local.tee $7 + local.tee $3 i32.const 10 i32.ne br_if $while-continue|07 end - local.get $7 + local.get $3 i32.const 10 i32.ne if @@ -1206,18 +1204,18 @@ unreachable end i32.const 10 - local.set $0 + local.set $3 loop $while-continue|013 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.const 1 i32.sub - local.set $0 + local.set $3 br $while-continue|013 end end - local.get $0 + local.get $3 if i32.const 0 i32.const 1056 @@ -1227,30 +1225,30 @@ unreachable end i32.const 10 - local.set $0 + local.set $3 i32.const 10 - local.set $11 + local.set $1 loop $while-continue|015 - local.get $0 + local.get $3 if loop $while-continue|117 - local.get $11 + local.get $1 if - local.get $11 + local.get $1 i32.const 1 i32.sub - local.set $11 + local.set $1 br $while-continue|117 end end - local.get $0 + local.get $3 i32.const 1 i32.sub - local.set $0 + local.set $3 br $while-continue|015 end end - local.get $0 + local.get $3 if i32.const 0 i32.const 1056 @@ -1259,7 +1257,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $1 if i32.const 0 i32.const 1056 @@ -1313,32 +1311,34 @@ local.tee $0 i32.const 0 i32.store + i32.const 0 + local.set $1 local.get $0 call $while/Ref#constructor - local.tee $0 + local.tee $3 i32.store loop $while-continue|08 - local.get $0 + local.get $3 if - local.get $6 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $1 i32.const 10 i32.eq if i32.const 0 - local.set $0 + local.set $3 else global.get $~lib/memory/__stack_pointer call $while/Ref#constructor - local.tee $0 + local.tee $3 i32.store end br $while-continue|08 end end - local.get $6 + local.get $1 i32.const 10 i32.ne if @@ -1349,7 +1349,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 if i32.const 0 i32.const 1056 @@ -1374,30 +1374,32 @@ local.tee $0 i32.const 0 i32.store + i32.const 0 + local.set $3 local.get $0 call $while/Ref#constructor - local.tee $0 + local.tee $1 i32.store loop $while-continue|012 call $while/Ref#constructor if block $while-break|011 - local.get $5 + local.get $3 i32.const 1 i32.add - local.tee $5 + local.tee $3 i32.const 10 i32.eq if i32.const 0 - local.set $0 + local.set $1 br $while-break|011 end br $while-continue|012 end end end - local.get $5 + local.get $3 i32.const 10 i32.ne if @@ -1408,7 +1410,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 if i32.const 0 i32.const 1056 @@ -1421,6 +1423,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 loop $while-continue|019 local.get $3 i32.const 1 @@ -1430,25 +1434,29 @@ i32.le_s br_if $while-continue|019 end + i32.const 0 + local.set $3 loop $while-continue|021 - local.get $2 + local.get $3 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 0 i32.le_s br_if $while-continue|021 end + i32.const 0 + local.set $3 loop $do-loop|0 - local.get $4 + local.get $3 i32.const 1 i32.add - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s br_if $do-loop|0 end - local.get $4 + local.get $3 i32.const 3 i32.ne if @@ -1750,8 +1758,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1797,19 +1805,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $0 + local.get $1 i32.eq if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 @@ -1819,22 +1827,22 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 + local.get $1 i32.load offset=4 i32.const -4 i32.and - local.tee $1 + local.tee $0 i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17908 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1848,7 +1856,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $2 i32.eqz @@ -1860,7 +1868,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 local.get $2 i32.store offset=8 local.get $2 @@ -1868,15 +1876,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.le_u if (result i32) @@ -1884,7 +1892,7 @@ else i32.const 1488 i32.load - local.get $1 + local.get $0 i32.lt_u if i32.const 1296 @@ -1894,7 +1902,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -1912,25 +1920,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 From 2ceedb30da515267d81a2f5a0e0a824ed6425900 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Tue, 23 Nov 2021 19:39:46 +0200 Subject: [PATCH 3/3] better --- src/module.ts | 1 + tests/compiler/binary.optimized.wat | 8 ++------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/module.ts b/src/module.ts index c7969ca745..94e97cdb64 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2412,6 +2412,7 @@ export class Module { if (optimizeLevel >= 2 || shrinkLevel >= 1) { passes.push("precompute-propagate"); passes.push("simplify-globals-optimizing"); + passes.push("simplify-globals-optimizing"); } else { passes.push("precompute"); } diff --git a/tests/compiler/binary.optimized.wat b/tests/compiler/binary.optimized.wat index 2ffdaefeb4..36ab116b87 100644 --- a/tests/compiler/binary.optimized.wat +++ b/tests/compiler/binary.optimized.wat @@ -168,9 +168,7 @@ global.set $binary/i i32.const 1 global.set $binary/i - global.get $binary/i - i32.const 1 - i32.sub + i32.const 0 global.set $binary/i i32.const 0 global.set $binary/i @@ -212,9 +210,7 @@ global.set $binary/I i64.const 1 global.set $binary/I - global.get $binary/I - i64.const 1 - i64.sub + i64.const 0 global.set $binary/I i64.const 0 global.set $binary/I