From 38143a75ee2ef5a0dc83cb0db878c09a4c19aecc Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Thu, 4 Nov 2021 16:11:26 +0200 Subject: [PATCH 1/2] add early inline pass --- src/module.ts | 1 + .../compiler/function-inline-regressions.json | 4 + .../function-inline-regressions.optimized.wat | 42 ++++++++++ tests/compiler/function-inline-regressions.ts | 35 ++++++++ .../function-inline-regressions.untouched.wat | 81 +++++++++++++++++++ 5 files changed, 163 insertions(+) create mode 100644 tests/compiler/function-inline-regressions.json create mode 100644 tests/compiler/function-inline-regressions.optimized.wat create mode 100644 tests/compiler/function-inline-regressions.ts create mode 100644 tests/compiler/function-inline-regressions.untouched.wat diff --git a/src/module.ts b/src/module.ts index 66a2ad14ea..17e5597fe8 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2298,6 +2298,7 @@ export class Module { // --- PassRunner::addDefaultFunctionOptimizationPasses --- if (optimizeLevel >= 2) { passes.push("once-reduction"); + passes.push("inlining"); } if (optimizeLevel >= 3 || shrinkLevel >= 1) { passes.push("rse"); diff --git a/tests/compiler/function-inline-regressions.json b/tests/compiler/function-inline-regressions.json new file mode 100644 index 0000000000..1bdd02b1be --- /dev/null +++ b/tests/compiler/function-inline-regressions.json @@ -0,0 +1,4 @@ +{ + "asc_flags": [ + ] +} diff --git a/tests/compiler/function-inline-regressions.optimized.wat b/tests/compiler/function-inline-regressions.optimized.wat new file mode 100644 index 0000000000..ff233bbc55 --- /dev/null +++ b/tests/compiler/function-inline-regressions.optimized.wat @@ -0,0 +1,42 @@ +(module + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (memory $0 0) + (export "baz" (func $function-inline-regressions/baz)) + (export "foo" (func $function-inline-regressions/foo)) + (export "memory" (memory $0)) + (func $function-inline-regressions/baz (param $0 i32) + local.get $0 + if + unreachable + end + ) + (func $function-inline-regressions/foo (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $0 + i32.const 1 + i32.shl + local.tee $3 + i32.load offset=1 + local.get $3 + i32.load + i32.const 16 + i32.load + local.tee $3 + i32.add + i32.add + if + unreachable + end + i32.const 0 + local.get $0 + i32.store + i32.const 4 + local.get $1 + i32.store + i32.const 8 + local.get $2 + i32.store + local.get $3 + ) +) diff --git a/tests/compiler/function-inline-regressions.ts b/tests/compiler/function-inline-regressions.ts new file mode 100644 index 0000000000..32c19e274f --- /dev/null +++ b/tests/compiler/function-inline-regressions.ts @@ -0,0 +1,35 @@ +@unmanaged class Struct { + v0: u32; + v1: u32; + v2: u32; +} + +// @inline +function loadZ() : u32 { + return load(16); +} + +// @inline +function loadX(a: i32, b: i32): u32 { + return load(2 * a + b); +} + +export function baz(v: u32): void { + if (v) unreachable(); +} + +export function foo(v0: i32, v1: i32, v2: i32): u32 { + const x = loadX(v0, 0); + const y = loadX(v0, 1); + const z = loadZ(); + + baz(z + x + y); + + struct.v0 = v0; + struct.v1 = v1; + struct.v2 = v2; + + return z; +} + +const struct = changetype(0); diff --git a/tests/compiler/function-inline-regressions.untouched.wat b/tests/compiler/function-inline-regressions.untouched.wat new file mode 100644 index 0000000000..237654cefe --- /dev/null +++ b/tests/compiler/function-inline-regressions.untouched.wat @@ -0,0 +1,81 @@ +(module + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (global $function-inline-regressions/struct 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 "baz" (func $function-inline-regressions/baz)) + (export "foo" (func $function-inline-regressions/foo)) + (export "memory" (memory $0)) + (func $function-inline-regressions/baz (param $0 i32) + local.get $0 + if + unreachable + end + ) + (func $function-inline-regressions/loadX (param $0 i32) (param $1 i32) (result i32) + i32.const 2 + local.get $0 + i32.mul + local.get $1 + i32.add + i32.load + ) + (func $function-inline-regressions/loadZ (result i32) + i32.const 16 + i32.load + ) + (func $function-inline-regressions/Struct#set:v0 (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $function-inline-regressions/Struct#set:v1 (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $function-inline-regressions/Struct#set:v2 (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $function-inline-regressions/foo (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 0 + call $function-inline-regressions/loadX + local.set $3 + local.get $0 + i32.const 1 + call $function-inline-regressions/loadX + local.set $4 + call $function-inline-regressions/loadZ + local.set $5 + local.get $5 + local.get $3 + i32.add + local.get $4 + i32.add + call $function-inline-regressions/baz + global.get $function-inline-regressions/struct + local.get $0 + call $function-inline-regressions/Struct#set:v0 + global.get $function-inline-regressions/struct + local.get $1 + call $function-inline-regressions/Struct#set:v1 + global.get $function-inline-regressions/struct + local.get $2 + call $function-inline-regressions/Struct#set:v2 + local.get $5 + ) +) From 9b6a6266294ccb6723cc304f90e82cb5487992a1 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Thu, 4 Nov 2021 16:18:01 +0200 Subject: [PATCH 2/2] update fixtures --- tests/compiler/NonNullable.optimized.wat | 98 +- tests/compiler/assert-nonnull.optimized.wat | 278 +- tests/compiler/builtins.optimized.wat | 90 +- tests/compiler/call-super.optimized.wat | 1563 +- tests/compiler/class-implements.optimized.wat | 466 +- .../class-overloading-cast.optimized.wat | 619 +- .../compiler/class-overloading.optimized.wat | 2814 +- tests/compiler/class.optimized.wat | 804 +- tests/compiler/constructor.optimized.wat | 521 +- tests/compiler/do.optimized.wat | 1006 +- .../empty-exportruntime.optimized.wat | 437 +- tests/compiler/empty-new.optimized.wat | 440 +- tests/compiler/exports.optimized.wat | 485 +- .../exportstar-rereexport.optimized.wat | 713 +- .../extends-baseaggregate.optimized.wat | 1068 +- .../compiler/extends-recursive.optimized.wat | 443 +- tests/compiler/features/simd.optimized.wat | 18 +- .../field-initialization.optimized.wat | 775 +- tests/compiler/field.optimized.wat | 1060 +- tests/compiler/for.optimized.wat | 981 +- tests/compiler/function-call.optimized.wat | 935 +- .../function-expression.optimized.wat | 1196 +- tests/compiler/function-types.optimized.wat | 11 +- tests/compiler/getter-call.optimized.wat | 464 +- tests/compiler/heap.optimized.wat | 167 +- .../implicit-getter-setter.optimized.wat | 449 +- tests/compiler/infer-array.optimized.wat | 713 +- tests/compiler/infer-generic.optimized.wat | 540 +- tests/compiler/inlining.optimized.wat | 457 +- tests/compiler/instanceof-class.optimized.wat | 532 +- tests/compiler/issues/1095.optimized.wat | 788 +- tests/compiler/issues/1225.optimized.wat | 755 +- tests/compiler/issues/1699.optimized.wat | 1500 +- tests/compiler/logical.optimized.wat | 464 +- tests/compiler/managed-cast.optimized.wat | 535 +- tests/compiler/new.optimized.wat | 456 +- tests/compiler/number.optimized.wat | 891 +- tests/compiler/object-literal.optimized.wat | 1530 +- .../optional-typeparameters.optimized.wat | 470 +- tests/compiler/possibly-null.optimized.wat | 43 +- tests/compiler/reexport.optimized.wat | 477 +- tests/compiler/rereexport.optimized.wat | 485 +- tests/compiler/resolve-access.optimized.wat | 1081 +- tests/compiler/resolve-binary.optimized.wat | 846 +- .../resolve-elementaccess.optimized.wat | 836 +- .../resolve-function-expression.optimized.wat | 914 +- tests/compiler/resolve-nested.optimized.wat | 472 +- tests/compiler/resolve-new.optimized.wat | 464 +- .../resolve-propertyaccess.optimized.wat | 658 +- tests/compiler/resolve-ternary.optimized.wat | 1298 +- tests/compiler/resolve-unary.optimized.wat | 668 +- tests/compiler/return.optimized.wat | 4 - tests/compiler/rt/finalize.optimized.wat | 478 +- tests/compiler/rt/instanceof.optimized.wat | 540 +- .../runtime-incremental-export.optimized.wat | 437 +- .../rt/runtime-minimal-export.optimized.wat | 63 +- .../rt/runtime-stub-export.optimized.wat | 10 +- tests/compiler/std-wasi/console.optimized.wat | 769 +- tests/compiler/std-wasi/crypto.optimized.wat | 1026 +- tests/compiler/std-wasi/process.optimized.wat | 2088 +- tests/compiler/std/array-access.optimized.wat | 166 +- .../compiler/std/array-literal.optimized.wat | 437 +- tests/compiler/std/array.optimized.wat | 10843 +++--- tests/compiler/std/arraybuffer.optimized.wat | 531 +- tests/compiler/std/dataview.optimized.wat | 648 +- tests/compiler/std/date.optimized.wat | 1569 +- tests/compiler/std/map.optimized.wat | 20337 ++++++------ tests/compiler/std/math.optimized.wat | 666 +- tests/compiler/std/new.optimized.wat | 472 +- tests/compiler/std/object.optimized.wat | 90 +- .../std/operator-overloading.optimized.wat | 473 +- tests/compiler/std/set.optimized.wat | 7827 ++--- tests/compiler/std/static-array.optimized.wat | 556 +- tests/compiler/std/staticarray.optimized.wat | 2710 +- .../std/string-casemapping.optimized.wat | 843 +- .../std/string-encoding.optimized.wat | 2734 +- tests/compiler/std/string.optimized.wat | 1742 +- tests/compiler/std/symbol.optimized.wat | 831 +- tests/compiler/std/typedarray.optimized.wat | 27293 ++++++++-------- tests/compiler/std/uri.optimized.wat | 715 +- tests/compiler/super-inline.optimized.wat | 467 +- tests/compiler/templateliteral.optimized.wat | 874 +- tests/compiler/throw.optimized.wat | 318 +- tests/compiler/typeof.optimized.wat | 557 +- tests/compiler/wasi/abort.optimized.wat | 6 +- tests/compiler/wasi/seed.optimized.wat | 2 +- tests/compiler/wasi/trace.optimized.wat | 108 +- tests/compiler/while.optimized.wat | 1089 +- 88 files changed, 63048 insertions(+), 63045 deletions(-) diff --git a/tests/compiler/NonNullable.optimized.wat b/tests/compiler/NonNullable.optimized.wat index ef40f5ead3..2ca9308c4d 100644 --- a/tests/compiler/NonNullable.optimized.wat +++ b/tests/compiler/NonNullable.optimized.wat @@ -23,6 +23,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -57,47 +58,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -108,17 +109,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -131,16 +131,18 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~start (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1324 diff --git a/tests/compiler/assert-nonnull.optimized.wat b/tests/compiler/assert-nonnull.optimized.wat index 2a632a59f7..a40dd66179 100644 --- a/tests/compiler/assert-nonnull.optimized.wat +++ b/tests/compiler/assert-nonnull.optimized.wat @@ -146,11 +146,11 @@ ) (func $export:assert-nonnull/testProp (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1404 i32.lt_s @@ -206,11 +206,11 @@ ) (func $export:assert-nonnull/testArr (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1404 i32.lt_s @@ -306,11 +306,11 @@ ) (func $export:assert-nonnull/testElem (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1404 i32.lt_s @@ -366,20 +366,20 @@ ) (func $export:assert-nonnull/testAll (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner1 - 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 1404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - block $__inlined_func$assert-nonnull/testAll (result i32) + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store local.get $1 i32.const 8 i32.sub @@ -387,77 +387,74 @@ global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store - block $folding-inner0 - local.get $0 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - call $~lib/array/Array#__get - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - br_if $folding-inner0 - local.get $1 - local.get $0 - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$assert-nonnull/testAll - end - i32.const 1056 - i32.const 1120 - i32.const 27 - i32.const 10 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + br_if $folding-inner1 + local.get $1 + local.get $0 + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 17808 + i32.const 17856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 17808 - i32.const 17856 - i32.const 1 - i32.const 1 + i32.const 1056 + i32.const 1120 + i32.const 27 + i32.const 10 call $~lib/builtins/abort unreachable ) (func $export:assert-nonnull/testAll2 (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner1 - 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 1404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - block $__inlined_func$assert-nonnull/testAll2 (result i32) + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store local.get $1 i32.const 8 i32.sub @@ -465,58 +462,55 @@ global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store - block $folding-inner0 - local.get $0 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - call $~lib/array/Array#__get - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - br_if $folding-inner0 - local.get $1 - local.get $0 - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$assert-nonnull/testAll2 - end - i32.const 1056 - i32.const 1120 - i32.const 31 - i32.const 10 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + br_if $folding-inner1 + local.get $1 + local.get $0 + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 17808 + i32.const 17856 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 17808 - i32.const 17856 - i32.const 1 - i32.const 1 + i32.const 1056 + i32.const 1120 + i32.const 31 + i32.const 10 call $~lib/builtins/abort unreachable ) @@ -549,11 +543,11 @@ ) (func $export:assert-nonnull/testFn2 (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1404 i32.lt_s @@ -609,11 +603,11 @@ ) (func $export:assert-nonnull/testRet (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1404 i32.lt_s @@ -698,11 +692,11 @@ ) (func $export:assert-nonnull/testObjRet (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1404 i32.lt_s diff --git a/tests/compiler/builtins.optimized.wat b/tests/compiler/builtins.optimized.wat index 870dd0f462..51a190f843 100644 --- a/tests/compiler/builtins.optimized.wat +++ b/tests/compiler/builtins.optimized.wat @@ -79,6 +79,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -113,47 +114,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -164,17 +165,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -187,7 +187,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $start:builtins~anonymous|1 diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index f57498eeea..f6c479de9e 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -674,38 +674,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1131,11 +1129,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1146,15 +1144,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1332,8 +1331,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1599,607 +1598,615 @@ (local $0 i32) (local $1 i32) (local $2 i32) - memory.size - i32.const 16 - i32.shl - i32.const 17980 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 4 + block $folding-inner1 + memory.size + i32.const 16 + i32.shl + i32.const 17980 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 i32.store - local.get $0 - i32.const 8 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 + i32.const 1224 + i32.const 1216 i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace 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 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + block $__inlined_func$call-super/test1 global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer local.tee $0 - i32.store - end - local.get $0 - i32.const 1 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if i32.const 0 - i32.const 1056 - i32.const 22 + i32.store + local.get $0 + i32.const 8 i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 1596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1056 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$call-super/test1 end global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + block $__inlined_func$call-super/test2 + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 i32.const 4 - i32.const 6 - call $~lib/rt/itcms/__new + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer local.tee $0 + i32.const 0 i32.store - end - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 38 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 39 + local.get $0 + i32.const 8 i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + 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 1596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1056 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$call-super/test2 end global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - 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 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + block $folding-inner0 global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 i32.const 8 + i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store - end - local.get $0 - i32.const 1 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if + global.get $~lib/memory/__stack_pointer + 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 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1056 - i32.const 56 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 56 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + 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 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 - i32.const 1056 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 1056 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - 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 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + i32.store + local.get $0 + i32.const 8 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + 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 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 10 + i32.add + global.set $~lib/memory/__stack_pointer + 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 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 11 call $~lib/rt/itcms/__new local.tee $0 i32.store - end - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if + global.get $~lib/memory/__stack_pointer + 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 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1056 - i32.const 85 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - 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 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + i32.store global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $0 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end i32.const 18000 i32.const 18048 @@ -2216,19 +2223,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -2238,22 +2245,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17980 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -2267,7 +2274,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -2279,7 +2286,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -2287,15 +2294,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -2303,7 +2310,7 @@ else i32.const 1488 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1296 @@ -2313,7 +2320,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -2331,25 +2338,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index 9fda589c77..f4feb9b159 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -696,38 +696,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1055,13 +1053,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1152,17 +1150,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1171,19 +1169,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1213,8 +1211,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1386,11 +1384,11 @@ ) (func $class-implements/C#constructor (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1564 i32.lt_s @@ -1409,7 +1407,6 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1433,6 +1430,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 @@ -1563,19 +1561,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1585,22 +1583,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17948 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1614,7 +1612,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1626,7 +1624,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 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 $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1650,7 +1648,7 @@ else i32.const 1504 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1660,7 +1658,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -1678,25 +1676,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index 7c0f2cfb87..3ad36c7a3a 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -710,38 +710,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1069,13 +1067,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1166,17 +1164,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1185,19 +1183,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1227,8 +1225,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1262,6 +1260,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -1296,47 +1295,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -1347,17 +1346,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -1370,7 +1368,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/rt/__visit_members (param $0 i32) @@ -1432,12 +1432,11 @@ (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 + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1700 i32.lt_s @@ -1588,12 +1587,11 @@ local.get $0 global.set $class-overloading-cast/v3 global.get $~lib/memory/__stack_pointer - global.get $class-overloading-cast/v - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.tee $1 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 + i32.store offset=8 block $default block $case1 local.get $0 @@ -1620,7 +1618,7 @@ end local.tee $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store offset=4 local.get $0 @@ -1657,26 +1655,28 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading-cast/v3 - local.tee $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 8 - i32.sub - i32.load - i32.const 6 - i32.eq - if (result i32) + block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) + 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 - else + local.get $1 + i32.const 8 + i32.sub + i32.load + i32.const 6 + i32.eq + br_if $__inlined_func$class-overloading-cast/A#foo@virtual + drop i32.const 1456 end - local.tee $1 - 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 $1 @@ -1742,23 +1742,21 @@ local.get $0 global.set $class-overloading-cast/c global.get $~lib/memory/__stack_pointer - local.tee $0 - local.tee $1 global.get $class-overloading-cast/c - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1600 i32.store offset=12 - local.get $2 + local.get $0 i32.const 8 i32.sub i32.load drop - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store offset=4 i32.const 1456 @@ -1775,14 +1773,13 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $class-overloading-cast/c - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1600 i32.store offset=12 - local.get $2 + local.get $1 i32.const 8 i32.sub i32.load @@ -1860,19 +1857,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1882,22 +1879,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18084 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1911,7 +1908,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1923,7 +1920,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1931,15 +1928,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1947,7 +1944,7 @@ else i32.const 1616 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1957,7 +1954,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1620 @@ -1975,25 +1972,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index 85fa21eab4..f715c318b9 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -734,38 +734,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1093,13 +1091,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1190,17 +1188,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1209,19 +1207,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1251,8 +1249,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1286,6 +1284,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -1320,47 +1319,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -1371,17 +1370,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -1394,7 +1392,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $class-overloading/A#a@virtual (param $0 i32) @@ -1552,1286 +1552,1288 @@ (func $start:class-overloading (local $0 i32) (local $1 i32) - block $folding-inner0 + block $folding-inner1 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 1932 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 18316 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $class-overloading/B#constructor - global.set $class-overloading/a - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@virtual - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 38 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1932 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 18316 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@virtual - block $default - block $case2 - block $case1 - block $case0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case0 $case1 $case0 $case0 $case2 $default + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $class-overloading/B#constructor + global.set $class-overloading/a + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@virtual + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@virtual + block $default + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case0 $case1 $case0 $case0 $case2 $default + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@virtual end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1520 + i32.store offset=4 + local.get $1 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 41 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@virtual - block $default6 - block $case27 - block $case18 - block $case09 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case09 $case18 $case09 $case09 $case27 $default6 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@virtual + block $default6 + block $case27 + block $case18 + block $case09 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case09 $case18 $case09 $case09 $case27 $default6 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@virtual end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@virtual end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@virtual end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1520 + i32.store offset=4 + local.get $1 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 44 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@virtual10 - block $default11 - block $case212 - block $case113 - block $case014 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case014 $case113 $case014 $case014 $case212 $default11 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@virtual10 + block $default11 + block $case212 + block $case113 + block $case014 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case014 $case113 $case014 $case014 $case212 $default11 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@virtual10 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual10 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual10 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual10 end - i32.const 1488 - global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 47 - 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 1932 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $class-overloading/B#constructor - 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 - global.set $class-overloading/c - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/c - i32.store - call $class-overloading/C#a - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 - local.get $0 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 71 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/c - i32.store - i32.const 1616 - global.set $class-overloading/which - local.get $0 - i32.const 1616 - i32.store - local.get $0 - i32.const 1616 - i32.store offset=4 - i32.const 1616 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 74 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/c - i32.store - i32.const 1616 - global.set $class-overloading/which - local.get $0 - i32.const 1616 - i32.store - local.get $0 - i32.const 1616 - i32.store offset=4 - i32.const 1616 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 77 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/c - i32.store - i32.const 1616 - global.set $class-overloading/which - local.get $0 - i32.const 1616 - i32.store - local.get $0 - i32.const 1616 - i32.store offset=4 - i32.const 1616 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1520 + i32.store offset=4 + local.get $1 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 47 + 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 1932 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 1552 - i32.const 79 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $class-overloading/D#constructor - global.set $class-overloading/a - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@virtual - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if + i32.store + local.get $0 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/B#constructor + 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 + global.set $class-overloading/c + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/c + i32.store + call $class-overloading/C#a + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=4 + local.get $0 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 71 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/c + i32.store + i32.const 1616 + global.set $class-overloading/which + local.get $0 + i32.const 1616 + i32.store + local.get $0 + i32.const 1616 + i32.store offset=4 + i32.const 1616 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/c + i32.store + i32.const 1616 + global.set $class-overloading/which + local.get $0 + i32.const 1616 + i32.store + local.get $0 + i32.const 1616 + i32.store offset=4 + i32.const 1616 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 77 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/c + i32.store + i32.const 1616 + global.set $class-overloading/which + local.get $0 + i32.const 1616 + i32.store + local.get $0 + i32.const 1616 + i32.store offset=4 + i32.const 1616 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 79 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1552 - i32.const 89 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@virtual22 - block $default23 - block $case224 - block $case125 - block $case026 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case026 $case125 $case026 $case026 $case224 $default23 + call $class-overloading/D#constructor + global.set $class-overloading/a + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@virtual + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 89 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@virtual22 + block $default23 + block $case224 + block $case125 + block $case026 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case026 $case125 $case026 $case026 $case224 $default23 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@virtual22 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual22 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual22 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual22 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1520 + i32.store offset=4 + local.get $1 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 92 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@virtual31 - block $default32 - block $case233 - block $case134 - block $case035 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case035 $case134 $case035 $case035 $case233 $default32 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@virtual31 + block $default32 + block $case233 + block $case134 + block $case035 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case035 $case134 $case035 $case035 $case233 $default32 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@virtual31 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@virtual31 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@virtual31 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual31 end - i32.const 1488 - global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 95 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@virtual40 - block $default41 - block $case242 - block $case143 - block $case044 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case044 $case143 $case044 $case044 $case242 $default41 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1520 + i32.store offset=4 + local.get $1 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@virtual40 + block $default41 + block $case242 + block $case143 + block $case044 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case044 $case143 $case044 $case044 $case242 $default41 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@virtual40 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual40 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual40 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual40 end - i32.const 1488 - global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 97 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $class-overloading/E#constructor - global.set $class-overloading/a - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@virtual - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1520 + i32.store offset=4 + local.get $1 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 97 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1552 - i32.const 107 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@virtual49 - block $default50 - block $case251 - block $case152 - block $case053 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case053 $case152 $case053 $case053 $case251 $default50 + call $class-overloading/E#constructor + global.set $class-overloading/a + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@virtual + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@virtual49 + block $default50 + block $case251 + block $case152 + block $case053 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case053 $case152 $case053 $case053 $case251 $default50 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@virtual49 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual49 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual49 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual49 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1520 + i32.store offset=4 + local.get $1 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 110 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@virtual58 - block $default59 - block $case260 - block $case161 - block $case062 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case062 $case161 $case062 $case062 $case260 $default59 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@virtual58 + block $default59 + block $case260 + block $case161 + block $case062 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case062 $case161 $case062 $case062 $case260 $default59 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@virtual58 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@virtual58 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@virtual58 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual58 end - i32.const 1488 - global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 113 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@virtual67 - block $default68 - block $case269 - block $case170 - block $case071 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case071 $case170 $case071 $case071 $case269 $default68 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1520 + i32.store offset=4 + local.get $1 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@virtual67 + block $default68 + block $case269 + block $case170 + block $case071 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case071 $case170 $case071 $case071 $case269 $default68 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@virtual67 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual67 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual67 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual67 end - i32.const 1488 - global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1520 - i32.store offset=4 - local.get $1 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1520 + i32.store offset=4 + local.get $1 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 115 + 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 1932 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 1552 - i32.const 115 - 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 1932 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - call $class-overloading/E#constructor - 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 - global.set $class-overloading/a - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@virtual - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 137 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@virtual77 - block $default78 - block $case279 - block $case180 - block $case081 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case081 $case180 $case081 $case081 $case279 $default78 + i32.store + local.get $0 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/E#constructor + 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 + global.set $class-overloading/a + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@virtual + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@virtual77 + block $default78 + block $case279 + block $case180 + block $case081 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case081 $case180 $case081 $case081 $case279 $default78 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@virtual77 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual77 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual77 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual77 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1648 + i32.store offset=4 + local.get $1 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 140 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1648 - i32.store offset=4 - local.get $1 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 140 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@virtual86 - block $default87 - block $case288 - block $case189 - block $case090 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case090 $case189 $case090 $case090 $case288 $default87 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@virtual86 + block $default87 + block $case288 + block $case189 + block $case090 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case090 $case189 $case090 $case090 $case288 $default87 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@virtual86 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@virtual86 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@virtual86 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual86 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1648 + i32.store offset=4 + local.get $1 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 143 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1648 - i32.store offset=4 - local.get $1 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 143 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@virtual95 - block $default96 - block $case297 - block $case198 - block $case099 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 4 - i32.sub - br_table $case099 $case198 $case099 $case099 $case297 $default96 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@virtual95 + block $default96 + block $case297 + block $case198 + block $case099 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 4 + i32.sub + br_table $case099 $case198 $case099 $case099 $case297 $default96 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@virtual95 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual95 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@virtual95 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual95 end - i32.const 1488 - global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1648 - i32.store offset=4 - local.get $1 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1648 + i32.store offset=4 + local.get $1 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 146 + 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 1932 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 1552 - i32.const 146 - 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 1932 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 10 - call $~lib/rt/itcms/__new - 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 - global.set $class-overloading/ia - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/ia - local.tee $0 - i32.store - block $__inlined_func$class-overloading/IA#foo@virtual - block $default105 - block $case1106 - local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 10 - i32.ne - if + i32.store + local.get $0 + i32.const 10 + call $~lib/rt/itcms/__new + 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 + global.set $class-overloading/ia + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/ia + local.tee $0 + i32.store + block $__inlined_func$class-overloading/IA#foo@virtual + block $default105 + block $case1106 local.get $0 - i32.const 12 - i32.eq - br_if $case1106 - br $default105 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 10 + i32.ne + if + local.get $0 + i32.const 12 + i32.eq + br_if $case1106 + br $default105 + end + i32.const 1680 + global.set $class-overloading/which + br $__inlined_func$class-overloading/IA#foo@virtual end - i32.const 1680 + i32.const 1712 global.set $class-overloading/which br $__inlined_func$class-overloading/IA#foo@virtual end - i32.const 1712 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual + unreachable end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1680 - i32.store offset=4 - local.get $1 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 162 - 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 1932 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 12 - call $~lib/rt/itcms/__new - 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 - global.set $class-overloading/ic - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/ic - local.tee $0 - i32.store - block $__inlined_func$class-overloading/IA#foo@virtual109 - block $default110 - block $case1111 - local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 10 - i32.ne - if - local.get $0 - i32.const 12 - i32.eq - br_if $case1111 - br $default110 - end - i32.const 1680 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual109 - end - i32.const 1712 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual109 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $class-overloading/which + local.tee $1 + i32.store + local.get $0 + i32.const 1680 + i32.store offset=4 + local.get $1 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 162 + i32.const 1 + call $~lib/builtins/abort + unreachable end - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which - local.tee $1 - i32.store - local.get $0 - i32.const 1712 - i32.store offset=4 - local.get $1 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz - if + 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 1932 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 1552 - i32.const 177 - 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 1932 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - 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 1932 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + i32.store + local.get $0 + i32.const 12 + call $~lib/rt/itcms/__new + 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 + global.set $class-overloading/ic + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/ic + local.tee $0 + i32.store + block $__inlined_func$class-overloading/IA#foo@virtual109 + block $default110 + block $case1111 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 10 + i32.ne + if + local.get $0 + i32.const 12 + i32.eq + br_if $case1111 + br $default110 + end + i32.const 1680 + global.set $class-overloading/which + br $__inlined_func$class-overloading/IA#foo@virtual109 + end + i32.const 1712 + global.set $class-overloading/which + br $__inlined_func$class-overloading/IA#foo@virtual109 + end + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 13 - call $~lib/rt/itcms/__new local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/b2 - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/b2 - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A2#foo@virtual (result i32) local.get $0 - i32.const 8 + i32.const 1712 + i32.store offset=4 + local.get $1 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 177 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.load + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1932 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 i32.const 14 - i32.eq + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + 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 1932 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz if 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 1932 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1932 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 15 + i32.const 13 call $~lib/rt/itcms/__new local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - 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 1932 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/b2 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/b2 + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A2#foo@virtual (result i32) local.get $0 - i32.eqz + i32.const 8 + i32.sub + i32.load + i32.const 14 + i32.eq if global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1932 + 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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1932 + 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 15 call $~lib/rt/itcms/__new local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer + 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 1932 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + 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 $0 + i32.store + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 15 + i32.ne + if + i32.const 1744 + i32.const 1552 + i32.const 186 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 3 + br $__inlined_func$class-overloading/A2#foo@virtual end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 $0 - i32.store - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 15 - i32.ne - if - i32.const 1744 - i32.const 1552 - i32.const 186 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 3 - br $__inlined_func$class-overloading/A2#foo@virtual + i32.const 1744 + i32.const 1552 + i32.const 198 + i32.const 5 + call $~lib/builtins/abort + unreachable end - i32.const 1744 - i32.const 1552 - i32.const 198 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 209 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 209 + 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 18336 i32.const 18384 @@ -2842,11 +2844,11 @@ ) (func $class-overloading/B#constructor (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1932 i32.lt_s @@ -2865,7 +2867,6 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2889,6 +2890,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 @@ -2991,19 +2993,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -3013,22 +3015,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18316 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -3042,7 +3044,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -3054,7 +3056,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -3062,15 +3064,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -3078,7 +3080,7 @@ else i32.const 1792 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1280 @@ -3088,7 +3090,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -3106,25 +3108,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index 36d5739d46..0439ea3151 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -1,7 +1,7 @@ (module (type $none_=>_none (func)) - (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) @@ -192,19 +192,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -816,38 +814,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1449,11 +1445,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1464,19 +1460,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1484,7 +1481,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1495,17 +1492,17 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 - i32.const 536870910 + local.get $5 + local.get $5 + i32.const 536870910 i32.lt_u select i32.add @@ -1515,16 +1512,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1532,7 +1529,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1540,8 +1537,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1558,7 +1555,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1568,13 +1565,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1587,40 +1584,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -1650,8 +1647,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1689,208 +1686,134 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1588 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - 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 1588 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 32 - call $~lib/memory/memory.fill - local.get $1 - local.get $2 - i32.store + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1588 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 4 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + 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 1588 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 32 + call $~lib/memory/memory.fill + local.get $2 + local.get $0 + i32.store + local.get $0 + if local.get $2 - if - local.get $1 - i32.eqz - br_if $folding-inner1 - global.get $~lib/rt/itcms/white - local.get $2 - i32.const 20 - i32.sub - local.tee $4 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $4 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $4 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + local.get $0 + i32.store offset=4 + local.get $2 + i32.const 32 + i32.store offset=8 + local.get $2 + i32.const 0 + 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 + i32.store + local.get $2 + if local.get $1 local.get $2 - i32.store offset=4 - local.get $1 - i32.const 32 - i32.store offset=8 - local.get $1 - i32.const 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 $1 - i32.store - local.get $1 - if - local.get $3 - i32.eqz - br_if $folding-inner1 - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $3 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $1 - i32.const 3 - i32.eq - i32.and - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + call $byn-split-outlined-A$~lib/rt/itcms/__link end - i32.const 18000 - i32.const 18048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const 0 - i32.const 1120 - i32.const 294 - i32.const 14 + i32.const 18000 + i32.const 18048 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid - block $class/Animal - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $class/Animal $folding-inner0 $folding-inner0 $invalid + block $~lib/array/Array + block $class/Animal + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $class/Animal $folding-inner0 $~lib/array/Array $invalid + end + return end return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end unreachable @@ -2001,4 +1924,53 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) ) diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index e503951a8d..b6d916a28a 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -751,38 +751,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1208,11 +1206,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1223,15 +1221,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1409,8 +1408,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1618,43 +1617,43 @@ ) (func $start:constructor (local $0 i32) + memory.size + i32.const 16 + i32.shl + i32.const 17988 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - memory.size - i32.const 16 - i32.shl - i32.const 17988 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - 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 1604 i32.lt_s @@ -2074,19 +2073,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -2096,22 +2095,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17988 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -2125,7 +2124,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -2137,7 +2136,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -2145,15 +2144,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -2161,7 +2160,7 @@ else i32.const 1488 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -2171,7 +2170,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -2189,25 +2188,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index 3a6eb21a03..a8059a0de2 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -674,38 +674,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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,297 +996,291 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - i32.const 10 - local.set $0 - loop $do-loop|0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - br_if $do-loop|0 - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + (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 local.get $1 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - loop $do-loop|00 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - br_if $do-loop|00 - end - local.get $0 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 + i32.const 1 + i32.add local.set $1 - i32.const 10 - local.set $0 - loop $do-loop|01 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - loop $do-loop|1 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - br_if $do-loop|1 - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 40 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - br_if $do-loop|01 - end local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $do-loop|02 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $do-loop|02 - end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.sub + local.tee $0 + br_if $do-loop|0 + end + local.get $0 + if i32.const 0 - local.set $0 - loop $do-loop|03 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $do-loop|03 - end - local.get $0 + i32.const 1056 i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 70 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 10 + i32.ne + if i32.const 0 - local.set $0 - loop $do-loop|04 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 10 - i32.ne - i32.const 0 - local.get $0 - select - br_if $do-loop|04 - end + i32.const 1056 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $do-loop|01 local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 116 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 + local.tee $1 + i32.const 1 + i32.sub local.set $0 + local.get $1 + br_if $do-loop|01 + end + local.get $0 + i32.const -1 + i32.ne + if i32.const 0 - local.set $1 - loop $do-loop|05 - local.get $0 + i32.const 1056 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $do-loop|03 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $6 + i32.const 1 + i32.add + local.set $6 + loop $do-loop|1 + local.get $10 i32.const 1 i32.add + local.set $10 + local.get $0 + i32.const 1 + i32.sub local.tee $0 - i32.const 10 - i32.ne - if - loop $do-loop|17 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.const 10 - i32.rem_s - i32.const 0 - local.get $1 - select - br_if $do-loop|17 - end - local.get $0 - br_if $do-loop|05 - end + br_if $do-loop|1 end local.get $0 - i32.const 10 - i32.ne if i32.const 0 i32.const 1056 - i32.const 134 - i32.const 3 + i32.const 39 + i32.const 5 call $~lib/builtins/abort unreachable end - local.get $1 - i32.const 90 + local.get $10 + i32.const 9 i32.ne if i32.const 0 i32.const 1056 - i32.const 135 - i32.const 3 + i32.const 40 + i32.const 5 call $~lib/builtins/abort unreachable end - memory.size - i32.const 16 - i32.shl - i32.const 17892 - i32.sub + local.get $0 + br_if $do-loop|03 + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $10 + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $do-loop|05 + local.get $5 i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace + i32.add + local.tee $5 + i32.const 10 + i32.ne + br_if $do-loop|05 + end + local.get $5 + i32.const 10 + i32.ne + if i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $do-loop|07 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 10 + i32.ne + br_if $do-loop|07 + end + local.get $4 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 70 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + loop $do-loop|015 + local.get $9 + i32.const 1 + i32.add + local.tee $9 + i32.const 10 + i32.ne + i32.const 0 + local.get $9 + select + br_if $do-loop|015 + end + local.get $9 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 116 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $do-loop|017 + local.get $8 + i32.const 1 + i32.add + local.tee $8 + i32.const 10 + i32.ne + if + loop $do-loop|120 + local.get $7 + i32.const 1 + i32.add + local.tee $7 + i32.const 10 + i32.rem_s + i32.const 0 + local.get $7 + select + br_if $do-loop|120 + end + local.get $8 + br_if $do-loop|017 + end + end + local.get $8 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 134 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $7 + i32.const 90 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 17892 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1508 i32.lt_s @@ -1300,11 +1292,11 @@ local.get $0 call $do/Ref#constructor i32.store - loop $do-loop|06 - local.get $1 + loop $do-loop|08 + local.get $3 i32.const 1 i32.add - local.tee $1 + local.tee $3 i32.const 10 i32.eq if @@ -1317,9 +1309,9 @@ i32.store end local.get $0 - br_if $do-loop|06 + br_if $do-loop|08 end - local.get $1 + local.get $3 i32.const 10 i32.ne if @@ -1343,8 +1335,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1359,10 +1349,10 @@ i32.store local.get $0 call $do/Ref#constructor - local.tee $1 + local.tee $0 i32.store - loop $do-loop|08 - block $do-break|09 + loop $do-loop|012 + block $do-break|011 local.get $2 i32.const 1 i32.add @@ -1371,11 +1361,11 @@ i32.eq if i32.const 0 - local.set $1 - br $do-break|09 + local.set $0 + br $do-break|011 end call $do/Ref#constructor - br_if $do-loop|08 + br_if $do-loop|012 end end local.get $2 @@ -1389,7 +1379,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 if i32.const 0 i32.const 1056 @@ -1498,7 +1488,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 @@ -1535,13 +1525,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1575,16 +1565,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 @@ -1637,7 +1627,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1652,7 +1642,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1675,8 +1665,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 @@ -1689,11 +1679,11 @@ i32.const 0 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -1708,7 +1698,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 @@ -1720,7 +1710,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 local.get $0 i32.const 20 i32.add @@ -1740,19 +1730,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1762,22 +1752,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17892 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1791,7 +1781,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1803,7 +1793,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1811,15 +1801,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1827,7 +1817,7 @@ else i32.const 1472 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1280 @@ -1837,7 +1827,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -1855,25 +1845,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 36f878bfc5..9973399dfc 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 $1 + local.set $2 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -179,7 +179,7 @@ else i32.const 1568 i32.load - local.get $2 + local.get $1 i32.lt_u if i32.const 1248 @@ -189,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1572 @@ -198,33 +198,31 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 - local.get $1 + local.get $2 i32.load offset=8 - local.set $2 + local.set $1 local.get $0 - local.get $1 + local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and local.get $0 i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -822,38 +820,111 @@ (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 + i32.const 17980 + 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 $0 i32.load offset=4 i32.const 3 @@ -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 - i32.const 17980 - 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 $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 - 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 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 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 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 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) @@ -1279,11 +1275,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1294,15 +1290,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1480,8 +1477,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1777,8 +1774,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index 25c28ebc6f..a4ef4381ca 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -670,38 +670,111 @@ (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 + i32.const 17852 + local.set $0 + loop $while-continue|0 + local.get $0 + i32.const 17852 + i32.lt_u + if + local.get $0 + i32.load + local.tee $2 + if + local.get $2 + call $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 $0 i32.load offset=4 i32.const 3 @@ -717,221 +790,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 - i32.const 17852 - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 17852 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $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 $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 - 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 17852 + 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 17852 - 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 17852 - 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) @@ -1087,13 +1085,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1281,19 +1279,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1303,22 +1301,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17852 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1332,7 +1330,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1344,7 +1342,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1352,15 +1350,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1368,7 +1366,7 @@ else i32.const 1440 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1378,7 +1376,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -1396,25 +1394,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index 3c66d1990d..9acd68bb8b 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -724,38 +724,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1083,13 +1081,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1180,17 +1178,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1199,19 +1197,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1241,8 +1239,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1272,28 +1270,29 @@ i32.const 20 i32.add local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 + local.tee $2 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 $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1451,11 +1450,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:exports/Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1484 i32.lt_s @@ -1545,11 +1544,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:exports/vehicles.Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1484 i32.lt_s @@ -1620,19 +1619,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1642,22 +1641,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17868 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1671,7 +1670,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1683,7 +1682,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1691,15 +1690,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1707,7 +1706,7 @@ else i32.const 1440 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1717,7 +1716,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -1735,25 +1734,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index 50c1473a52..71db4dbb90 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -725,38 +725,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1084,132 +1082,134 @@ ) (func $~start (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 + block $__inlined_func$start:exportstar-rereexport global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 17956 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - call $exports/Car#constructor - global.set $reexport/car - global.get $~lib/memory/__stack_pointer - global.get $reexport/car - local.tee $0 - i32.store - local.get $0 - i32.load - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 40 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - call $exports/Car#constructor - global.set $rereexport/car - global.get $~lib/memory/__stack_pointer - global.get $rereexport/car - local.tee $0 - i32.store - local.get $0 - i32.load - i32.const 2 - i32.ne - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 1504 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $exports/Car#constructor - global.set $rereexport/exportsNamespaceCar - global.get $~lib/memory/__stack_pointer - global.get $rereexport/exportsNamespaceCar - local.tee $0 - i32.store - local.get $0 - i32.load - i32.const 2 - i32.ne - if + i32.store + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1504 - i32.const 24 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 17956 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + call $exports/Car#constructor + global.set $reexport/car + global.get $~lib/memory/__stack_pointer + global.get $reexport/car + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + call $exports/Car#constructor + global.set $rereexport/car + global.get $~lib/memory/__stack_pointer + global.get $rereexport/car + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $exports/Car#constructor + global.set $rereexport/exportsNamespaceCar + global.get $~lib/memory/__stack_pointer + global.get $rereexport/exportsNamespaceCar + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$start:exportstar-rereexport end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 17984 + i32.const 18032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 17984 - i32.const 18032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) (func $exports/Car#constructor (result i32) (local $0 i32) @@ -1233,7 +1233,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 @@ -1270,13 +1270,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1310,16 +1310,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 @@ -1372,7 +1372,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1387,7 +1387,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1410,8 +1410,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 @@ -1424,11 +1424,11 @@ i32.const 4 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -1443,7 +1443,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 @@ -1459,33 +1459,34 @@ i32.const 20 i32.add local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $2 + local.tee $3 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 $2 + local.get $3 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $3 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 local.get $0 i32.store local.get $0 @@ -1508,19 +1509,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1530,22 +1531,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17956 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1559,7 +1560,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1571,7 +1572,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1579,15 +1580,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1595,7 +1596,7 @@ else i32.const 1536 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1296 @@ -1605,7 +1606,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1540 @@ -1623,25 +1624,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index 820757f700..19933ed0f0 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -2,8 +2,8 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -198,19 +198,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -822,38 +820,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1455,11 +1451,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1470,19 +1466,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1490,7 +1487,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1501,16 +1498,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -1521,16 +1518,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1538,7 +1535,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1546,8 +1543,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1564,7 +1561,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1574,13 +1571,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1593,40 +1590,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -1656,8 +1653,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2373,230 +2370,334 @@ i32.store8 end ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $0 - i32.const 20 - i32.sub - local.tee $2 + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + i32.const 1180 i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u + local.tee $10 + i32.const 1 + i32.add + local.tee $8 + i32.const 1176 + i32.load + local.tee $9 + i32.const 2 + i32.shr_u + i32.gt_u if - local.get $2 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $4 - local.get $1 - local.get $2 - i32.load offset=16 - local.tee $2 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $5 - block $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.tee $1 - local.get $0 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $1 - i32.sub - local.get $5 - i32.sub - i32.const 0 - local.get $5 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $1 - local.get $0 - local.get $5 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - local.get $1 + local.get $8 + i32.const 268435455 i32.gt_u if - local.get $0 - i32.const 7 - i32.and + i32.const 1616 + i32.const 1664 + i32.const 18 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/rt/itcms/__renew + local.get $9 + i32.const 1 + i32.shl + local.tee $1 + i32.const 1073741820 local.get $1 - i32.const 7 + i32.const 1073741820 + i32.lt_u + select + local.tee $1 + local.get $8 + i32.const 8 + local.get $8 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $2 + local.get $1 + local.get $2 + i32.gt_u + select + local.tee $7 + i32.const 1168 + i32.load + local.tee $11 + local.tee $1 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 i32.and - i32.eq + i32.const 16 + i32.sub + i32.le_u if - loop $while-continue|0 + local.get $3 + local.get $7 + i32.store offset=16 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $7 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $5 + local.set $2 + local.get $7 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $3 + local.get $7 + i32.gt_u + select + local.set $6 + block $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $2 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $2 + i32.sub + local.get $6 + i32.sub + i32.const 0 + local.get $6 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + local.get $6 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $1 + local.get $2 + i32.gt_u + if local.get $1 i32.const 7 i32.and + local.get $2 + i32.const 7 + i32.and + i32.eq if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - br $while-continue|0 + loop $while-continue|0 + local.get $2 + i32.const 7 + i32.and + if + local.get $6 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + local.get $2 + local.tee $3 + i32.const 1 + i32.add + local.set $2 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $6 + i32.const 8 + i32.ge_u + if + local.get $2 + local.get $1 + i64.load + i64.store + local.get $6 + i32.const 8 + i32.sub + local.set $6 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end end - end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $1 - local.get $0 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - 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 + loop $while-continue|2 + local.get $6 + if + local.get $2 + local.tee $3 + i32.const 1 + i32.add + local.set $2 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end end - end - end - loop $while-continue|2 - local.get $5 - if + else local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 + i32.const 7 + i32.and local.get $2 - local.get $3 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $1 - local.get $5 - i32.add i32.const 7 i32.and + i32.eq if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 + loop $while-continue|3 + local.get $2 + local.get $6 + i32.add + i32.const 7 + i32.and + if + local.get $6 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $6 + i32.const 1 + i32.sub + local.tee $6 + local.get $2 + i32.add + local.get $1 + local.get $6 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $6 + i32.const 8 + i32.ge_u + if + local.get $6 + i32.const 8 + i32.sub + local.tee $6 + local.get $2 + i32.add + local.get $1 + local.get $6 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i64.load - i64.store - br $while-continue|4 + loop $while-continue|5 + local.get $6 + if + local.get $6 + i32.const 1 + i32.sub + local.tee $6 + local.get $2 + i32.add + local.get $1 + local.get $6 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end end end end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end + local.get $5 + local.set $1 + end + local.get $1 + local.get $9 + i32.add + local.get $7 + local.get $9 + i32.sub + call $~lib/memory/memory.fill + local.get $1 + local.get $11 + i32.ne + if + i32.const 1168 + local.get $1 + i32.store + i32.const 1172 + local.get $1 + i32.store + local.get $1 + if + local.get $1 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link end end + i32.const 1176 + local.get $7 + i32.store end - local.get $4 + i32.const 1172 + i32.load + local.get $10 + i32.const 2 + i32.shl + i32.add + local.get $0 + i32.store + local.get $0 + if + local.get $0 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + i32.const 1180 + local.get $8 + i32.store ) (func $~lib/array/Array~visit (param $0 i32) (local $1 i32) @@ -2686,16 +2787,11 @@ (func $~start (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s @@ -2801,104 +2897,8 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 1180 - i32.load - local.tee $1 - i32.const 1 - i32.add - local.tee $2 - local.tee $5 - i32.const 1176 - i32.load - local.tee $4 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1616 - i32.const 1664 - i32.const 18 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1168 - i32.load - local.tee $3 - local.get $4 - i32.const 1 - i32.shl - local.tee $6 - i32.const 1073741820 - local.get $6 - i32.const 1073741820 - i32.lt_u - select - local.tee $6 - local.get $5 - i32.const 8 - local.get $5 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $5 - local.get $5 - local.get $6 - i32.lt_u - select - local.tee $5 - call $~lib/rt/itcms/__renew - local.tee $6 - i32.add - local.get $5 - local.get $4 - i32.sub - call $~lib/memory/memory.fill - local.get $3 - local.get $6 - i32.ne - if - i32.const 1168 - local.get $6 - i32.store - i32.const 1172 - local.get $6 - i32.store - local.get $6 - if - local.get $6 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - end - i32.const 1176 - local.get $5 - i32.store - end - i32.const 1172 - i32.load - local.get $1 - i32.const 2 - i32.shl - i32.add local.get $0 - i32.store - local.get $0 - if - local.get $0 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - i32.const 1180 - local.get $2 - i32.store + call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer i32.const 8 i32.add diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index 2b3d08b7b4..f5b4813af7 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -187,19 +187,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -811,38 +809,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1170,13 +1166,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1267,17 +1263,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1286,19 +1282,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1328,8 +1324,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1359,28 +1355,29 @@ i32.const 20 i32.add local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 + local.tee $2 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 $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1558,11 +1555,11 @@ ) (func $export:extends-recursive/Child#constructor (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1484 i32.lt_s @@ -1593,7 +1590,6 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1620,6 +1616,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/features/simd.optimized.wat b/tests/compiler/features/simd.optimized.wat index 7b09a7e9a6..84777455ed 100644 --- a/tests/compiler/features/simd.optimized.wat +++ b/tests/compiler/features/simd.optimized.wat @@ -736,7 +736,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1073741820 i32.gt_u @@ -748,6 +747,7 @@ call $~lib/builtins/abort unreachable end + local.get $0 i32.const 12 local.get $1 i32.const 19 @@ -857,7 +857,7 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.set $4 + local.set $2 local.get $3 i32.const 4 i32.add @@ -871,17 +871,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and local.get $3 i32.sub - local.tee $2 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $2 i32.const 2 i32.and local.get $3 @@ -892,19 +892,19 @@ i32.const 4 i32.add i32.add - local.tee $3 - local.get $2 + local.tee $2 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 983d7b4f3f..32d67a3f0b 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -205,19 +205,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -829,38 +827,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1462,11 +1458,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1477,19 +1473,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1497,7 +1494,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1508,16 +1505,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -1528,16 +1525,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1545,7 +1542,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1553,8 +1550,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1571,7 +1568,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1581,13 +1578,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1600,40 +1597,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -1663,8 +1660,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1702,6 +1699,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -1736,47 +1734,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -1787,17 +1785,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -1810,7 +1807,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/rt/__visit_members (param $0 i32) @@ -1898,6 +1897,7 @@ (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -1997,7 +1997,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 @@ -2006,16 +2005,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 4 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 @@ -2023,8 +2022,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load if i32.const 0 @@ -2036,7 +2036,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 @@ -2045,22 +2044,22 @@ 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 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $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 @@ -2069,8 +2068,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load i32.eqz if @@ -2083,7 +2083,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 @@ -2092,22 +2091,22 @@ 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 6 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $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 @@ -2116,8 +2115,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load i32.eqz if @@ -2130,7 +2130,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 @@ -2139,16 +2138,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 7 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 @@ -2156,8 +2155,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load if i32.const 0 @@ -2169,7 +2169,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 @@ -2178,16 +2177,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 8 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 @@ -2195,8 +2194,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load if i32.const 0 @@ -2208,7 +2208,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 @@ -2217,16 +2216,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 9 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.store global.get $~lib/memory/__stack_pointer @@ -2234,8 +2233,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load i32.const 1 i32.ne @@ -2249,7 +2249,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 @@ -2258,19 +2257,19 @@ 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 10 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 1 i32.store global.get $~lib/memory/__stack_pointer @@ -2278,8 +2277,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load i32.const 1 i32.ne @@ -2293,7 +2293,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 @@ -2302,22 +2301,22 @@ 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 11 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $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 @@ -2326,8 +2325,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load i32.eqz if @@ -2340,7 +2340,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 @@ -2349,25 +2348,25 @@ 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 12 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $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 @@ -2376,8 +2375,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load i32.eqz if @@ -2402,31 +2402,32 @@ i32.lt_s br_if $folding-inner0 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 4 i32.const 13 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 local.get $0 + local.tee $1 i32.store local.get $0 if - local.get $2 - local.get $0 + local.get $3 + local.get $1 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 $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.load local.get $0 i32.ne @@ -2440,7 +2441,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 @@ -2449,16 +2449,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 14 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 @@ -2466,8 +2466,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.load if i32.const 0 @@ -2479,7 +2480,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 @@ -2488,22 +2488,22 @@ 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 15 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $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 @@ -2512,8 +2512,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.load i32.eqz if @@ -2526,7 +2527,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 @@ -2535,25 +2535,25 @@ 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 16 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $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 @@ -2562,8 +2562,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.load i32.eqz if @@ -2576,7 +2577,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 @@ -2585,27 +2585,28 @@ 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 17 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 call $field-initialization/Inherit_Base#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 local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.load i32.eqz if @@ -2618,7 +2619,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 @@ -2627,27 +2627,28 @@ 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 19 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 call $field-initialization/Inherit_Base#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 local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.load i32.eqz if @@ -2991,7 +2992,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 @@ -3000,25 +3000,25 @@ 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 22 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $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 @@ -3027,8 +3027,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load i32.eqz if diff --git a/tests/compiler/field.optimized.wat b/tests/compiler/field.optimized.wat index 9f4d2c187a..ad24b303df 100644 --- a/tests/compiler/field.optimized.wat +++ b/tests/compiler/field.optimized.wat @@ -183,19 +183,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -807,38 +805,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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 - i32.const 0 - return - end - global.get $~lib/rt/itcms/visitCount + 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 + end + i32.const 0 ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1264,11 +1260,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1279,15 +1275,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1465,8 +1462,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2366,137 +2363,91 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $folding-inner1 - block $folding-inner0 - 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 1524 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1524 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $7 + i32.const 0 + i32.store + local.get $7 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1524 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 4 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $5 + 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 1524 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $8 + i32.const 0 + i32.store + i32.const 1456 + local.set $1 + block $~lib/util/memory/memmove|inlined.0 i32.const 0 - i32.store - local.get $0 - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1524 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 - i32.store - local.get $0 - i32.const 4 - i32.const 3 call $~lib/rt/itcms/__new local.tee $4 - 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 1524 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 0 - i32.store + i32.const 1456 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 local.get $0 i32.const 1456 - local.set $1 - block $~lib/util/memory/memmove|inlined.0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - local.tee $0 - i32.const 1456 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 + i32.eq + if local.get $0 - i32.const 1456 - i32.eq - if - local.get $0 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + i32.const 1456 + i32.lt_u + if local.get $0 - i32.const 1456 - i32.lt_u + i32.const 7 + i32.and + i32.eqz if - local.get $0 - i32.const 7 - i32.and - i32.eqz - if - loop $while-continue|0 - local.get $0 - i32.const 7 - i32.and - if - local.get $6 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $6 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $1 - i64.load - i64.store - local.get $6 - i32.const 8 - i32.sub - local.set $6 - 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 $6 + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and if + local.get $6 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $6 + i32.const 1 + i32.sub + local.set $6 local.get $0 local.tee $2 i32.const 1 @@ -2511,66 +2462,74 @@ local.get $3 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 - br $while-continue|2 + br $while-continue|0 end end - else - local.get $0 - i32.const 7 - i32.and - i32.eqz - if - loop $while-continue|3 + loop $while-continue|1 + local.get $6 + i32.const 8 + i32.ge_u + if local.get $0 + local.get $1 + i64.load + i64.store local.get $6 + i32.const 8 + i32.sub + local.set $6 + local.get $0 + i32.const 8 i32.add - i32.const 7 - i32.and - if - local.get $6 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $6 - i32.const 1 - i32.sub - local.tee $6 - local.get $0 - i32.add - local.get $6 - i32.const 1456 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $6 + local.set $0 + local.get $1 i32.const 8 - i32.ge_u - if - local.get $6 - i32.const 8 - i32.sub - local.tee $6 - local.get $0 - i32.add - local.get $6 - i32.const 1456 - i32.add - i64.load - i64.store - br $while-continue|4 - end + i32.add + local.set $1 + br $while-continue|1 end end - loop $while-continue|5 + end + loop $while-continue|2 + local.get $6 + if + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + else + local.get $0 + i32.const 7 + i32.and + i32.eqz + if + loop $while-continue|3 + local.get $0 local.get $6 + i32.add + i32.const 7 + i32.and if + local.get $6 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 local.get $6 i32.const 1 i32.sub @@ -2582,145 +2541,102 @@ i32.add i32.load8_u i32.store8 - br $while-continue|5 + br $while-continue|3 end end - end - end - local.get $5 - i32.store - i32.const 16 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - local.get $5 - i32.store - local.get $5 - if - local.get $1 - i32.eqz - br_if $folding-inner1 - global.get $~lib/rt/itcms/white - local.get $5 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $1 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $2 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $2 - i32.const 3 - i32.eq - i32.and + loop $while-continue|4 + local.get $6 + i32.const 8 + i32.ge_u if + local.get $6 + i32.const 8 + i32.sub + local.tee $6 local.get $0 - call $~lib/rt/itcms/Object#makeGray + i32.add + local.get $6 + i32.const 1456 + i32.add + i64.load + i64.store + br $while-continue|4 end end end - end - local.get $1 - local.get $5 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 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.tee $0 - local.get $1 - i32.store - local.get $1 - if - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + loop $while-continue|5 + local.get $6 if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state + local.get $6 i32.const 1 - i32.eq + i32.sub + local.tee $6 local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end + i32.add + local.get $6 + i32.const 1456 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 end end end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + end + local.get $8 + local.get $4 + i32.store + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + local.get $4 + i32.store + local.get $4 + if + local.get $0 local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + call $byn-split-outlined-A$~lib/rt/itcms/__link end - i32.const 17936 - i32.const 17984 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + local.get $4 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 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 $0 + i32.store + local.get $0 + if + local.get $5 + 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 $7 + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const 0 - i32.const 1120 - i32.const 294 - i32.const 14 + i32.const 17936 + i32.const 17984 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable ) @@ -2728,59 +2644,62 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner0 - block $invalid - block $~lib/array/Array<~lib/string/String> - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $~lib/array/Array<~lib/string/String> $folding-inner0 $invalid + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/array/Array<~lib/string/String> + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $~lib/array/Array<~lib/string/String> $folding-inner1 $invalid + end + return end return end - return - end - local.get $0 - i32.load offset=4 - local.tee $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if + local.get $0 + i32.load offset=4 + local.tee $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 local.get $1 - i32.load - local.tee $3 + local.get $2 + i32.lt_u if - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__visit + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 end + br $folding-inner1 end + unreachable + end + local.get $0 + i32.load + local.tee $0 + if local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return + call $byn-split-outlined-A$~lib/rt/itcms/__visit end - unreachable + return end local.get $0 i32.load @@ -2877,4 +2796,53 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) ) diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 50bf8dd7c8..b281f13bd8 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -674,38 +674,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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,281 +996,276 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - loop $for-loop|0 - local.get $0 - i32.const 10 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $0 + (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 i32.const 10 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1056 - i32.const 8 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end + end + local.get $1 + i32.const 10 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $0 - i32.const 10 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - end - end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 1056 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|01 + local.get $3 i32.const 10 - local.set $0 - loop $for-loop|01 - local.get $0 - i32.const 0 - i32.gt_s - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|01 - end - end - local.get $0 + i32.lt_s if - i32.const 0 - i32.const 1056 - i32.const 29 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|01 end + end + local.get $3 + i32.const 10 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|02 - local.get $0 - i32.const 10 - i32.ne - if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - end - end - local.get $0 - i32.const 10 - i32.ne + i32.const 1056 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $1 + loop $for-loop|04 + local.get $1 + i32.const 0 + i32.gt_s if - i32.const 0 - i32.const 1056 - i32.const 39 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - loop $for-loop|03 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.tee $0 - br_if $for-loop|03 - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $1 + br $for-loop|04 end + end + local.get $1 + if i32.const 0 - local.set $0 - loop $for-loop|05 - local.get $0 + i32.const 1056 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|07 + local.get $4 + i32.const 10 + i32.ne + if + local.get $4 i32.const 1 i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $for-loop|05 + local.set $4 + br $for-loop|07 end - local.get $0 + end + local.get $4 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $1 + loop $for-loop|010 + local.get $1 + i32.const 1 + i32.sub + local.tee $1 + br_if $for-loop|010 + end + local.get $1 + if + i32.const 0 + i32.const 1056 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|013 + local.get $7 + i32.const 1 + i32.add + local.tee $7 i32.const 10 i32.ne + br_if $for-loop|013 + end + local.get $7 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|016 + local.get $5 + i32.const 10 + i32.lt_s if - i32.const 0 - i32.const 1056 - i32.const 61 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|016 end + end + local.get $5 + i32.const 10 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|07 - local.get $0 - i32.const 10 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|07 - end - end + i32.const 1056 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $for-loop|025 local.get $0 i32.const 10 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1056 - i32.const 80 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|08 local.get $0 - i32.const 10 - i32.lt_s + i32.const 2 + i32.ge_s if - local.get $0 - i32.const 2 - i32.ge_s - if - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 10 + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + i32.const 10 + i32.lt_s + if + local.get $6 + i32.const 1 + i32.add + local.get $6 + local.get $0 + local.get $2 i32.lt_s - if - local.get $2 - i32.const 1 - i32.add - local.get $2 - local.get $0 - local.get $1 - i32.lt_s - select - local.set $2 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + select + local.set $6 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|08 end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|025 end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 121 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 28 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - memory.size - i32.const 16 - i32.shl - i32.const 17892 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace + end + local.get $0 + i32.const 10 + i32.ne + if i32.const 0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $6 + i32.const 28 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 17892 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1508 i32.lt_s @@ -1283,30 +1276,30 @@ i32.store local.get $0 call $for/Ref#constructor - local.tee $1 + local.tee $0 i32.store - loop $for-loop|06 - local.get $1 + loop $for-loop|08 + local.get $0 if - local.get $2 + local.get $8 i32.const 1 i32.add - local.tee $2 + local.tee $8 i32.const 10 i32.eq if i32.const 0 - local.set $1 + local.set $0 else global.get $~lib/memory/__stack_pointer call $for/Ref#constructor - local.tee $1 + local.tee $0 i32.store end - br $for-loop|06 + br $for-loop|08 end end - local.get $2 + local.get $8 i32.const 10 i32.ne if @@ -1317,7 +1310,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 if i32.const 0 i32.const 1056 @@ -1330,8 +1323,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1351,30 +1342,30 @@ call $for/Ref#constructor local.tee $0 i32.store - loop $for-loop|09 + loop $for-loop|012 call $for/Ref#constructor if - block $for-break010 - local.get $1 + block $for-break011 + local.get $9 i32.const 1 i32.add - local.tee $1 + local.tee $9 i32.const 10 i32.eq if i32.const 0 local.set $0 - br $for-break010 + br $for-break011 end global.get $~lib/memory/__stack_pointer call $for/Ref#constructor local.tee $0 i32.store - br $for-loop|09 + br $for-loop|012 end end end - local.get $1 + local.get $9 i32.const 10 i32.ne if @@ -1494,7 +1485,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 @@ -1531,13 +1522,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1571,16 +1562,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 @@ -1633,7 +1624,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1648,7 +1639,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1671,8 +1662,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 @@ -1685,11 +1676,11 @@ i32.const 0 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -1704,7 +1695,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 @@ -1716,7 +1707,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 local.get $0 i32.const 20 i32.add @@ -1736,19 +1727,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1758,22 +1749,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17892 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1787,7 +1778,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1799,7 +1790,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1807,15 +1798,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1823,7 +1814,7 @@ else i32.const 1472 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1280 @@ -1833,7 +1824,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -1851,25 +1842,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index 2316b256cb..26a04e5b86 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -4,10 +4,10 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) @@ -712,38 +712,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1032,25 +1030,253 @@ end end ) - (func $function-call/Foo#fnVoid (param $0 i32) - nop - ) - (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $1 - local.get $2 - i32.add - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $function-call/Foo - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + local.get $0 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $0 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $1 + local.get $0 + local.get $1 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $1 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1616 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1616 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $1 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $3 + local.get $1 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $3 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 6 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + 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 $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + ) + (func $function-call/Foo#fnVoid (param $0 i32) + nop + ) + (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $1 + local.get $2 + i32.add + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $function-call/Foo + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $function-call/Foo $folding-inner0 $folding-inner0 $invalid end return @@ -1080,10 +1306,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1187,232 +1409,11 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $0 - i32.eqz - if - memory.size - local.tee $0 - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $0 - local.get $2 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $3 - local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $4 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $4 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $4 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $4 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $4 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 6 - i32.store offset=12 - local.get $0 i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $2 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $1 + i32.store local.get $0 - i32.const 20 - i32.add + call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1484,19 +1485,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1506,22 +1507,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18220 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1535,7 +1536,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1547,7 +1548,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1555,15 +1556,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1571,7 +1572,7 @@ else i32.const 1760 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1472 @@ -1581,7 +1582,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1764 @@ -1599,25 +1600,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index b631942f37..dad8c5e4aa 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -251,19 +251,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -875,38 +873,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1195,337 +1191,463 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) + (func $function-expression/semanticallyAnonymous~fnDecl|0 (param $0 i64) (result i64) + local.get $0 + ) + (func $function-expression/semanticallyAnonymous (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u + 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 2196 + i32.lt_s if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end + i32.const 18608 + i32.const 18656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 2064 + i32.store + local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner1 + block $folding-inner0 + block $invalid + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner1 $invalid + end + return + end + return + end + unreachable + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock + local.get $0 + i32.load offset=4 local.tee $0 - i32.eqz if - memory.size - local.tee $0 - i32.const 4 - local.get $2 - i32.load offset=1568 local.get $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + ) + (func $~start + call $start:function-expression + ) + (func $function-expression/testField + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $0 + i64.const 0 + i64.store local.get $1 - i32.gt_s - select - memory.grow i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 2032 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u if - local.get $1 + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-loop|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + local.get $0 + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $4 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $0 + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $2 + local.get $0 + local.get $2 + i32.gt_s + select memory.grow i32.const 0 i32.lt_s if + local.get $2 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort unreachable end end - local.get $2 local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1936 - i32.const 496 - i32.const 16 + i32.const 498 + i32.const 14 call $~lib/builtins/abort unreachable end - end - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1936 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $1 - i32.const 16 - i32.ge_u - if + local.get $4 local.get $0 - local.get $3 - i32.const 2 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $5 + i32.const -4 i32.and i32.const 28 - i32.or - i32.store + i32.sub + local.tee $2 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $5 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $5 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $5 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $5 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 8 + i32.store offset=12 local.get $0 - i32.const 32 - i32.add - local.tee $3 - local.get $1 i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $2 + i32.load offset=8 + local.set $4 + local.get $0 local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 local.get $0 - local.get $3 - i32.const -2 + local.get $4 + i32.store offset=8 + local.get $4 + local.get $4 + i32.load offset=4 + i32.const 3 i32.and - i32.store local.get $0 - i32.const 4 - i32.add + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total local.get $0 i32.load i32.const -4 i32.and + i32.const 4 i32.add - local.tee $1 - local.get $1 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 8 - i32.store offset=12 - local.get $0 - i32.const 4 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $2 - local.get $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - 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 $1 - local.get $0 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 20 - i32.add - local.tee $0 - i32.const 0 - i32.store8 - local.get $0 - i32.const 4 - i32.add - local.tee $1 - i32.const 1 - i32.sub - i32.const 0 - i32.store8 - local.get $0 - i32.const 0 - i32.store8 offset=1 - local.get $0 - i32.const 0 - i32.store8 offset=2 - local.get $1 - i32.const 2 - i32.sub - i32.const 0 - i32.store8 - local.get $1 - i32.const 3 - i32.sub - i32.const 0 - i32.store8 - local.get $0 - ) - (func $function-expression/semanticallyAnonymous~fnDecl|0 (param $0 i64) (result i64) - local.get $0 - ) - (func $function-expression/semanticallyAnonymous - (local $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 2196 - i32.lt_s - if - i32.const 18608 - i32.const 18656 - i32.const 1 + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.store8 + local.get $0 + i32.const 4 + i32.add + local.tee $2 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 2064 - i32.store - local.get $0 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $invalid - end - return + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 0 + i32.store8 offset=1 + local.get $0 + i32.const 0 + i32.store8 offset=2 + local.get $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $3 + local.get $0 + i32.store + local.get $0 + i32.const 2032 + i32.store + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + i32.const 2016 + i32.load + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $2 + i32.const 3 + i32.eq + i32.and + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray end - return end - unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.load offset=4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + i32.load + call_indirect $0 (type $none_=>_i32) local.tee $0 + i32.store offset=8 + i32.const 1 + local.get $0 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.ne if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit + i32.const 0 + i32.const 1088 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer return end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end + i32.const 18608 + i32.const 18656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $~start + (func $start:function-expression (local $0 i32) - (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 2196 i32.lt_s @@ -1783,119 +1905,7 @@ i32.store i32.const 1888 global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2196 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 2032 - i32.store - local.get $0 - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2196 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 2032 - i32.store - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 1664 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - i32.const 2016 - i32.load - i32.const 3 - i32.and - i32.eq - if - local.get $1 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - i32.load - call_indirect $0 (type $none_=>_i32) - local.tee $0 - i32.store offset=8 - i32.const 1 - local.get $0 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 25 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $function-expression/testField call $function-expression/semanticallyAnonymous global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/function-types.optimized.wat b/tests/compiler/function-types.optimized.wat index 7b0fd33255..1f363e14e9 100644 --- a/tests/compiler/function-types.optimized.wat +++ b/tests/compiler/function-types.optimized.wat @@ -41,11 +41,11 @@ (func $~start (local $0 i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1228 i32.lt_s @@ -187,9 +187,10 @@ end unreachable end + i32.const 1056 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 1056 - local.tee $0 i32.store end i32.const 2 diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 947f743f02..848473f30a 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -677,38 +677,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1095,7 +1093,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 @@ -1132,13 +1130,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1172,16 +1170,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 @@ -1234,7 +1232,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1249,7 +1247,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1272,8 +1270,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 @@ -1286,11 +1284,11 @@ i32.const 0 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -1305,7 +1303,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 @@ -1317,7 +1315,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 local.get $0 i32.const 20 i32.add @@ -1369,19 +1367,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1391,22 +1389,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17900 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1420,7 +1418,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1432,7 +1430,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 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 $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1456,7 +1454,7 @@ else i32.const 1472 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1466,7 +1464,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -1484,25 +1482,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index 62063b669b..7f0815b046 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -1678,14 +1678,14 @@ local.get $0 local.get $2 call $~lib/rt/tlsf/allocateBlock - local.set $6 + local.set $7 local.get $1 i32.load i32.const -4 i32.and - local.set $7 + local.set $6 block $~lib/util/memory/memmove|inlined.0 - local.get $6 + local.get $7 i32.const 4 i32.add local.tee $2 @@ -1698,10 +1698,10 @@ local.get $3 local.get $2 i32.sub - local.get $7 + local.get $6 i32.sub i32.const 0 - local.get $7 + local.get $6 i32.const 1 i32.shl i32.sub @@ -1709,7 +1709,7 @@ if local.get $2 local.get $3 - local.get $7 + local.get $6 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 $7 + local.get $6 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 + local.get $6 i32.const 1 i32.sub - local.set $7 + local.set $6 local.get $2 local.tee $4 i32.const 1 @@ -1755,7 +1755,7 @@ end end loop $while-continue|1 - local.get $7 + local.get $6 i32.const 8 i32.ge_u if @@ -1763,10 +1763,10 @@ local.get $3 i64.load i64.store - local.get $7 + local.get $6 i32.const 8 i32.sub - local.set $7 + local.set $6 local.get $2 i32.const 8 i32.add @@ -1780,7 +1780,7 @@ end end loop $while-continue|2 - local.get $7 + local.get $6 if local.get $2 local.tee $4 @@ -1796,10 +1796,10 @@ local.get $5 i32.load8_u i32.store8 - local.get $7 + local.get $6 i32.const 1 i32.sub - local.set $7 + local.set $6 br $while-continue|2 end end @@ -1814,22 +1814,22 @@ if loop $while-continue|3 local.get $2 - local.get $7 + local.get $6 i32.add i32.const 7 i32.and if - local.get $7 + local.get $6 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 + local.get $6 i32.const 1 i32.sub - local.tee $7 + local.tee $6 local.get $2 i32.add local.get $3 - local.get $7 + local.get $6 i32.add i32.load8_u i32.store8 @@ -1837,18 +1837,18 @@ end end loop $while-continue|4 - local.get $7 + local.get $6 i32.const 8 i32.ge_u if - local.get $7 + local.get $6 i32.const 8 i32.sub - local.tee $7 + local.tee $6 local.get $2 i32.add local.get $3 - local.get $7 + local.get $6 i32.add i64.load i64.store @@ -1857,16 +1857,16 @@ end end loop $while-continue|5 - local.get $7 + local.get $6 if - local.get $7 + local.get $6 i32.const 1 i32.sub - local.tee $7 + local.tee $6 local.get $2 i32.add local.get $3 - local.get $7 + local.get $6 i32.add i32.load8_u i32.store8 @@ -1889,7 +1889,7 @@ local.get $1 call $~lib/rt/tlsf/insertBlock end - local.get $6 + local.get $7 ) (func $~lib/memory/heap.realloc (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1906,82 +1906,87 @@ local.get $0 i32.const 17660 i32.lt_u - if (result i32) + if global.get $~lib/rt/tlsf/ROOT local.get $0 call $~lib/rt/tlsf/checkUsedBlock local.get $1 call $~lib/rt/tlsf/moveBlock + local.set $0 else - block $__inlined_func$~lib/rt/tlsf/reallocateBlock (result i32) + block $__inlined_func$~lib/rt/tlsf/reallocateBlock global.get $~lib/rt/tlsf/ROOT local.set $2 local.get $0 call $~lib/rt/tlsf/checkUsedBlock - local.set $6 - block $folding-inner0 - local.get $1 - call $~lib/rt/tlsf/prepareSize - local.tee $4 - local.get $6 - i32.load - local.tee $0 - i32.const -4 - i32.and - local.tee $5 - i32.le_u - br_if $folding-inner0 + local.set $0 + local.get $1 + call $~lib/rt/tlsf/prepareSize + local.tee $3 + local.get $0 + i32.load + local.tee $4 + i32.const -4 + i32.and + local.tee $6 + i32.le_u + if + local.get $2 + local.get $0 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + br $__inlined_func$~lib/rt/tlsf/reallocateBlock + end + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $5 + i32.load + local.tee $7 + i32.const 1 + i32.and + if local.get $6 i32.const 4 i32.add - local.get $6 - i32.load + local.get $7 i32.const -4 i32.and i32.add - local.tee $3 - i32.load - local.tee $7 - i32.const 1 - i32.and + local.tee $6 + local.get $3 + i32.ge_u if - local.get $4 + local.get $2 local.get $5 - i32.const 4 - i32.add - local.get $7 - i32.const -4 + call $~lib/rt/tlsf/removeBlock + local.get $0 + local.get $6 + local.get $4 + i32.const 3 i32.and - i32.add - local.tee $5 - i32.le_u - if - local.get $2 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $6 - local.get $5 - local.get $0 - i32.const 3 - i32.and - i32.or - i32.store - br $folding-inner0 - end + i32.or + i32.store + local.get $2 + local.get $0 + local.get $3 + call $~lib/rt/tlsf/prepareBlock + br $__inlined_func$~lib/rt/tlsf/reallocateBlock end - local.get $2 - local.get $6 - local.get $1 - call $~lib/rt/tlsf/moveBlock - br $__inlined_func$~lib/rt/tlsf/reallocateBlock end local.get $2 - local.get $6 - local.get $4 - call $~lib/rt/tlsf/prepareBlock - local.get $6 + local.get $0 + local.get $1 + call $~lib/rt/tlsf/moveBlock + local.set $0 end end + local.get $0 i32.const 4 i32.add ) diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index 4c5afbfd43..1fdd91429c 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -193,19 +193,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -817,38 +815,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1176,13 +1172,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1273,17 +1269,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1292,19 +1288,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1334,8 +1330,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1365,28 +1361,29 @@ i32.const 20 i32.add local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 + local.tee $2 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 $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1514,11 +1511,11 @@ ) (func $export:implicit-getter-setter/Basic#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1484 i32.lt_s @@ -1636,11 +1633,11 @@ ) (func $export:implicit-getter-setter/Managed#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index 53d477f058..2159ac4362 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -219,19 +219,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -843,38 +841,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1300,11 +1296,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1315,15 +1311,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1501,8 +1498,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2412,83 +2409,83 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner0 - 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 2212 - i32.lt_s - if - i32.const 18624 - i32.const 18672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - memory.size - i32.const 16 - i32.shl - i32.const 18596 - i32.sub + 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 2212 + i32.lt_s + if + i32.const 18624 + i32.const 18672 i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace - local.get $0 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 1056 - call $~lib/rt/__newArray - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - i32.const 3 - i32.const 4 - i32.const 1536 - call $~lib/rt/__newArray - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 5 - i32.const 1584 - call $~lib/rt/__newArray - local.tee $0 - i32.store + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + i32.const 18596 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + local.get $0 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 1056 + call $~lib/rt/__newArray + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 3 + i32.const 4 + i32.const 1536 + call $~lib/rt/__newArray + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 5 + i32.const 1584 + call $~lib/rt/__newArray + local.tee $0 + i32.store + block $folding-inner0 local.get $0 i32.load offset=12 i32.const 1 @@ -2703,20 +2700,30 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner2 - block $folding-inner1 + block $folding-inner1 + block $folding-inner0 block $invalid block $infer-array/Ref - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $infer-array/Ref $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner1 $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $infer-array/Ref $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner1 $invalid + end + return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end return @@ -2724,34 +2731,6 @@ unreachable end local.get $0 - i32.load offset=4 - local.tee $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $0 i32.load local.tee $0 if @@ -2761,6 +2740,34 @@ return end local.get $0 + i32.load offset=4 + local.tee $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $0 i32.load local.tee $0 if @@ -2794,21 +2801,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $9 i32.const 0 i32.store local.get $0 local.get $1 i32.shl local.tee $8 - local.set $9 - local.get $8 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 $6 local.tee $1 local.get $3 @@ -2817,10 +2824,10 @@ local.get $3 local.get $1 i32.sub - local.get $9 + local.get $7 i32.sub i32.const 0 - local.get $9 + local.get $7 i32.const 1 i32.shl i32.sub @@ -2828,7 +2835,7 @@ if local.get $1 local.get $3 - local.get $9 + local.get $7 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end @@ -2849,13 +2856,13 @@ i32.const 7 i32.and if - local.get $9 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $9 + local.get $7 i32.const 1 i32.sub - local.set $9 + local.set $7 local.get $1 local.tee $4 i32.const 1 @@ -2874,7 +2881,7 @@ end end loop $while-continue|1 - local.get $9 + local.get $7 i32.const 8 i32.ge_u if @@ -2882,10 +2889,10 @@ local.get $3 i64.load i64.store - local.get $9 + local.get $7 i32.const 8 i32.sub - local.set $9 + local.set $7 local.get $1 i32.const 8 i32.add @@ -2899,7 +2906,7 @@ end end loop $while-continue|2 - local.get $9 + local.get $7 if local.get $1 local.tee $4 @@ -2915,10 +2922,10 @@ local.get $5 i32.load8_u i32.store8 - local.get $9 + local.get $7 i32.const 1 i32.sub - local.set $9 + local.set $7 br $while-continue|2 end end @@ -2933,22 +2940,22 @@ if loop $while-continue|3 local.get $1 - local.get $9 + local.get $7 i32.add i32.const 7 i32.and if - local.get $9 + local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $9 + local.get $7 i32.const 1 i32.sub - local.tee $9 + local.tee $7 + local.get $1 i32.add local.get $3 - local.get $9 + local.get $7 i32.add i32.load8_u i32.store8 @@ -2956,18 +2963,18 @@ end end loop $while-continue|4 - local.get $9 + local.get $7 i32.const 8 i32.ge_u if - local.get $1 - local.get $9 + local.get $7 i32.const 8 i32.sub - local.tee $9 + local.tee $7 + local.get $1 i32.add local.get $3 - local.get $9 + local.get $7 i32.add i64.load i64.store @@ -2976,16 +2983,16 @@ end end loop $while-continue|5 - local.get $9 + local.get $7 if - local.get $1 - local.get $9 + local.get $7 i32.const 1 i32.sub - local.tee $9 + local.tee $7 + local.get $1 i32.add local.get $3 - local.get $9 + local.get $7 i32.add i32.load8_u i32.store8 @@ -2995,7 +3002,7 @@ end end end - local.get $7 + local.get $9 local.get $6 i32.store i32.const 16 diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index 646bef4e1a..8b743ab165 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -699,38 +699,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1058,13 +1056,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1216,8 +1214,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 @@ -1247,28 +1245,29 @@ i32.const 20 i32.add local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 + local.tee $2 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 $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1279,37 +1278,47 @@ local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner1 - block $folding-inner0 - block $invalid - block $infer-generic/Ref - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $folding-inner1 $folding-inner0 $infer-generic/Ref $folding-inner0 $folding-inner0 $invalid + block $folding-inner0 + block $invalid + block $infer-generic/Ref + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $folding-inner0 $infer-generic/Ref $folding-inner0 $folding-inner0 $invalid + end + return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end - unreachable + 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 + unreachable end local.get $0 - i32.load + i32.load offset=4 local.tee $0 if local.get $0 @@ -1321,11 +1330,11 @@ (local $1 i32) (local $2 i32) (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1684 i32.lt_s @@ -1345,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 @@ -1413,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 @@ -1422,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 @@ -1437,15 +1445,15 @@ 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.tee $1 - local.get $0 - i32.store local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -1493,19 +1501,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1515,22 +1523,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18068 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1544,7 +1552,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1556,7 +1564,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1564,15 +1572,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1580,7 +1588,7 @@ else i32.const 1616 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1424 @@ -1590,7 +1598,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1620 @@ -1608,25 +1616,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index 06cac7f4d7..30e159f4f7 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -686,38 +686,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1143,11 +1141,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1158,15 +1156,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1344,8 +1343,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1675,13 +1674,13 @@ 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 16 i32.const 5 call $~lib/rt/itcms/__new @@ -1718,7 +1717,7 @@ local.get $0 i32.const 4 i32.store offset=12 - local.get $2 + local.get $1 local.get $0 i32.store offset=8 local.get $0 @@ -1790,19 +1789,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1812,22 +1811,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17964 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1841,7 +1840,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1853,7 +1852,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1861,15 +1860,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1877,7 +1876,7 @@ else i32.const 1520 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1328 @@ -1887,7 +1886,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1524 @@ -1905,25 +1904,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index ce647effca..613c843881 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -688,38 +688,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1047,13 +1045,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1144,17 +1142,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1163,19 +1161,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1205,8 +1203,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1239,43 +1237,43 @@ (func $start:instanceof-class (local $0 i32) (local $1 i32) + memory.size + i32.const 16 + i32.shl + i32.const 17948 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - memory.size - i32.const 16 - i32.shl - i32.const 17948 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - 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 1564 i32.lt_s @@ -1422,7 +1420,7 @@ i32.load i32.le_u if - loop $do-loop|010 + loop $do-loop|011 i32.const 1 local.get $0 i32.const 6 @@ -1436,7 +1434,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|010 + br_if $do-loop|011 end end i32.const 0 @@ -1512,19 +1510,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1534,22 +1532,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17948 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1563,7 +1561,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1575,7 +1573,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1583,15 +1581,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1599,7 +1597,7 @@ else i32.const 1504 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1609,7 +1607,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -1627,25 +1625,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index 280cf4e218..64cec2a8aa 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -187,19 +187,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -811,38 +809,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1170,13 +1166,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1328,8 +1324,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 @@ -1359,28 +1355,29 @@ i32.const 20 i32.add local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 + local.tee $2 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 $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1415,210 +1412,130 @@ (func $~start (local $0 i32) (local $1 i32) - block $folding-inner1 - block $folding-inner0 - 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 1620 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 18004 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - 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 1620 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 1456 - i32.store - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/rt/itcms/white - i32.const 1440 - i32.load - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - i32.const 1436 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $1 - i32.const 3 - i32.eq - i32.and - if - i32.const 1436 - call $~lib/rt/itcms/Object#makeGray - end - end - 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 $1 - local.get $0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1620 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.load - local.tee $1 - i32.store - local.get $1 - i32.eqz - if - i32.const 1488 - i32.const 1552 - i32.const 8 - i32.const 13 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1620 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 18004 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + 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 1620 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 1456 + i32.store + local.get $0 + i32.const 1456 + call $byn-split-outlined-A$~lib/rt/itcms/__link + 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 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1620 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load + local.tee $1 + i32.store + local.get $1 + i32.eqz + if + i32.const 1488 + i32.const 1552 + i32.const 8 + i32.const 13 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.store + local.get $1 + if local.get $0 local.get $1 - i32.store - local.get $1 - if - local.get $0 - i32.eqz - br_if $folding-inner1 - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + call $byn-split-outlined-A$~lib/rt/itcms/__link end - i32.const 18032 - i32.const 18080 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - i32.const 0 - i32.const 1120 - i32.const 294 - i32.const 14 + i32.const 18032 + i32.const 18080 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable ) @@ -1641,4 +1558,53 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) ) diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index cb2cba41e8..b5318efd08 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -1,6 +1,6 @@ (module - (type $none_=>_i32 (func (result i32))) (type $none_=>_none (func)) + (type $none_=>_i32 (func (result 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))) @@ -683,38 +683,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1003,31 +1001,91 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) + (func $issues/1225/normal (result i32) + global.get $issues/1225/x + i32.load + ) + (func $issues/1225/viaThis (result i32) + global.get $issues/1225/x + i32.load offset=4 + ) + (func $start:issues/1225 (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul + (local $5 i32) + memory.size + i32.const 16 + i32.shl + i32.const 17908 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + 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 1524 + i32.lt_s + if + i32.const 17936 + i32.const 17984 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-loop|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul i64.const 100 i64.div_u i32.wrap_i64 @@ -1043,13 +1101,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1083,16 +1141,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 + local.tee $3 local.get $0 - local.get $2 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1140,17 +1198,17 @@ call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $4 i32.const 16 i32.ge_u if local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1159,19 +1217,19 @@ local.get $0 i32.const 32 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $1 - local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1199,17 +1257,17 @@ global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and @@ -1231,7 +1289,7 @@ local.get $0 i32.const 20 i32.add - local.tee $2 + local.tee $3 local.tee $0 i32.const 0 i32.store8 @@ -1275,10 +1333,10 @@ i32.and local.tee $1 i32.add - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 12 local.get $1 i32.sub @@ -1286,7 +1344,7 @@ i32.and local.tee $4 i32.add - local.tee $0 + local.tee $1 i32.const 4 i32.sub i32.const 0 @@ -1296,18 +1354,18 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $0 i32.const 0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 12 i32.sub i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 8 i32.sub i32.const 0 @@ -1316,49 +1374,49 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $3 + local.get $0 i32.const 0 i32.store offset=12 - local.get $3 + local.get $0 i32.const 0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 0 i32.store offset=20 - local.get $3 + local.get $0 i32.const 0 i32.store offset=24 - local.get $0 + local.get $1 i32.const 28 i32.sub i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 24 i32.sub i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 16 i32.sub i32.const 0 i32.store - local.get $3 - local.get $3 + local.get $0 + local.get $0 i32.const 4 i32.and i32.const 24 i32.add - local.tee $0 + local.tee $5 i32.add local.set $1 local.get $4 - local.get $0 + local.get $5 i32.sub local.set $0 loop $while-continue|0 @@ -1391,122 +1449,29 @@ end end local.get $2 - ) - (func $issues/1225/normal (result i32) - global.get $issues/1225/x - i32.load - ) - (func $issues/1225/viaThis (result i32) - global.get $issues/1225/x - i32.load offset=4 - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $invalid - block $issues/1225/X - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1225/X $invalid - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - memory.size - i32.const 16 - i32.shl - i32.const 17908 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - 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 1524 - i32.lt_s - if - i32.const 17936 - i32.const 17984 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 + local.get $3 i32.store - local.get $0 + local.get $3 i32.const 4 i32.store offset=8 - local.get $0 + local.get $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 0 i32.store offset=4 - local.get $0 - local.get $0 + local.get $3 + local.get $3 i32.load offset=8 i32.store offset=4 - local.get $0 + local.get $3 i32.const 4 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $3 global.set $issues/1225/x global.get $issues/1225/x i32.load @@ -1538,12 +1503,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 + loop $while-continue|00 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0 + br $while-continue|00 end end end @@ -1568,6 +1533,38 @@ i32.add global.set $~lib/rt/itcms/threshold ) + (func $~lib/rt/__visit_members (param $0 i32) + block $invalid + block $issues/1225/X + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $issues/1225/X $invalid + end + return + end + return + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + return + end + return + end + unreachable + ) + (func $~start + call $start:issues/1225 + ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) (local $2 i32) @@ -1576,19 +1573,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1598,22 +1595,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17908 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1627,7 +1624,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1639,7 +1636,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1647,15 +1644,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1663,7 +1660,7 @@ else i32.const 1488 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1673,7 +1670,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -1691,25 +1688,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index 659db3d84d..efa79642c3 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -1,9 +1,9 @@ (module - (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_i32 (func (result 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))) @@ -194,19 +194,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -818,38 +816,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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 - 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 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 + 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) @@ -1451,11 +1447,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1466,19 +1462,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1486,7 +1483,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1497,16 +1494,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -1517,16 +1514,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1534,7 +1531,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1542,8 +1539,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1560,7 +1557,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1570,13 +1567,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1589,40 +1586,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -1652,8 +1649,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2369,337 +2366,334 @@ i32.store8 end ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $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) local.get $0 - i32.const 20 - i32.sub - local.tee $2 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u - if - local.get $2 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $2 i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $4 - local.get $1 - local.get $2 - i32.load offset=16 - local.tee $2 local.get $1 - local.get $2 - i32.lt_u - select - local.set $5 - block $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.tee $1 - local.get $0 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 + i32.le_u + if local.get $1 - i32.sub - local.get $5 - i32.sub i32.const 0 - local.get $5 - i32.const 1 - i32.shl - i32.sub - i32.le_u + i32.lt_s if - local.get $1 - local.get $0 - local.get $5 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 + i32.const 1344 + i32.const 1104 + i32.const 123 + i32.const 22 + call $~lib/builtins/abort + unreachable end - local.get $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + local.get $0 + i32.load offset=8 + local.tee $9 + i32.const 2 + i32.shr_u i32.gt_u if - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq + local.get $3 + i32.const 268435455 + i32.gt_u if - loop $while-continue|0 - local.get $1 - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $1 - local.get $0 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - 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 + i32.const 1056 + i32.const 1104 + i32.const 18 + i32.const 48 + call $~lib/builtins/abort + unreachable end - loop $while-continue|2 - local.get $5 + block $__inlined_func$~lib/rt/itcms/__renew + local.get $9 + i32.const 1 + i32.shl + local.tee $4 + i32.const 1073741820 + local.get $4 + i32.const 1073741820 + i32.lt_u + select + local.tee $4 + local.get $3 + i32.const 8 + local.get $3 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $3 + local.get $3 + local.get $4 + i32.lt_u + select + local.tee $11 + local.get $0 + i32.load + local.tee $10 + local.tee $3 + i32.const 20 + i32.sub + local.tee $4 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u if - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 + local.get $4 + local.get $11 + i32.store offset=16 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $11 + local.get $4 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $5 + local.get $11 + local.get $4 + i32.load offset=16 + local.tee $4 + local.get $4 + local.get $11 + i32.gt_u + select + local.set $8 + block $~lib/util/memory/memmove|inlined.0 local.get $5 - i32.const 1 + local.tee $4 + local.get $3 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $3 + local.get $4 i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $1 - local.get $5 - i32.add - i32.const 7 - i32.and + local.get $8 + i32.sub + i32.const 0 + local.get $8 + i32.const 1 + i32.shl + i32.sub + i32.le_u if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 + local.get $4 + local.get $3 + local.get $8 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u + local.get $3 + local.get $4 + i32.gt_u if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i64.load - i64.store - br $while-continue|4 + local.get $3 + i32.const 7 + i32.and + local.get $4 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $4 + i32.const 7 + i32.and + if + local.get $8 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $8 + i32.const 1 + i32.sub + local.set $8 + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $3 + local.tee $7 + i32.const 1 + i32.add + local.set $3 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $8 + i32.const 8 + i32.ge_u + if + local.get $4 + local.get $3 + i64.load + i64.store + local.get $8 + i32.const 8 + i32.sub + local.set $8 + local.get $4 + i32.const 8 + i32.add + local.set $4 + local.get $3 + i32.const 8 + i32.add + local.set $3 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $8 + if + local.get $4 + local.tee $6 + i32.const 1 + i32.add + local.set $4 + local.get $3 + local.tee $7 + i32.const 1 + i32.add + local.set $3 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 + local.get $8 + i32.const 1 + i32.sub + local.set $8 + br $while-continue|2 + end + end + else + local.get $3 + i32.const 7 + i32.and + local.get $4 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $4 + local.get $8 + i32.add + i32.const 7 + i32.and + if + local.get $8 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $8 + i32.const 1 + i32.sub + local.tee $8 + local.get $4 + i32.add + local.get $3 + local.get $8 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $8 + i32.const 8 + i32.ge_u + if + local.get $8 + i32.const 8 + i32.sub + local.tee $8 + local.get $4 + i32.add + local.get $3 + local.get $8 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $8 + if + local.get $8 + i32.const 1 + i32.sub + local.tee $8 + local.get $4 + i32.add + local.get $3 + local.get $8 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end end end - end - loop $while-continue|5 local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - local.get $4 - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - i32.load offset=12 - local.get $1 - i32.le_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1344 - i32.const 1104 - i32.const 123 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.add - local.tee $4 - local.tee $7 - local.get $0 - local.tee $3 - i32.load offset=8 - local.tee $5 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $7 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 18 - i32.const 48 - call $~lib/builtins/abort - unreachable + local.set $3 end local.get $3 - i32.load - local.tee $6 - local.get $5 - i32.const 1 - i32.shl - local.tee $8 - i32.const 1073741820 - local.get $8 - i32.const 1073741820 - i32.lt_u - select - local.tee $8 - local.get $7 - i32.const 8 - local.get $7 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $7 - local.get $7 - local.get $8 - i32.lt_u - select - local.tee $7 - call $~lib/rt/itcms/__renew - local.tee $8 - local.get $5 + local.get $9 i32.add - local.get $7 - local.get $5 + local.get $11 + local.get $9 i32.sub call $~lib/memory/memory.fill - local.get $6 - local.get $8 + local.get $3 + local.get $10 i32.ne if + local.get $0 local.get $3 - local.get $8 i32.store + local.get $0 local.get $3 - local.get $8 i32.store offset=4 - local.get $8 + local.get $3 if + local.get $0 local.get $3 - local.get $8 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end end - local.get $3 - local.get $7 + local.get $0 + local.get $11 i32.store offset=8 end local.get $0 - local.get $4 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -2718,258 +2712,6 @@ call $byn-split-outlined-A$~lib/rt/itcms/__link end ) - (func $start:issues/1699 - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - memory.size - i32.const 16 - i32.shl - i32.const 18140 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1756 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1756 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 16 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - i32.const 0 - i32.store - local.get $3 - i32.const 0 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $4 - i32.const 32 - call $~lib/memory/memory.fill - local.get $3 - local.get $4 - i32.store - local.get $4 - if - local.get $3 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $4 - i32.const 20 - i32.sub - local.tee $5 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $3 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $5 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $1 - i32.const 3 - i32.eq - i32.and - if - local.get $5 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end - local.get $3 - local.get $4 - i32.store offset=4 - local.get $3 - i32.const 32 - i32.store offset=8 - local.get $3 - i32.const 3 - 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 $3 - i32.store - call $issues/1699/MultiAssignmentTest#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $3 - i32.const 1 - local.get $1 - call $~lib/array/Array#__set - local.get $3 - i32.const 1 - call $~lib/array/Array#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $1 - call $~lib/array/Array#__set - loop $for-loop|0 - local.get $3 - i32.load offset=12 - local.get $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - call $issues/1699/MultiAssignmentTest#constructor - local.tee $1 - i32.store offset=12 - local.get $0 - i32.const 1 - i32.gt_s - if - local.get $3 - local.get $0 - local.get $1 - call $~lib/array/Array#__set - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $3 - i32.const 0 - call $~lib/array/Array#__get - local.get $3 - i32.const 1 - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - i32.const 1680 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 2 - call $~lib/array/Array#__get - local.get $3 - i32.const 1 - call $~lib/array/Array#__get - i32.eq - if - i32.const 0 - i32.const 1680 - i32.const 16 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 18160 - i32.const 18208 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) (local $2 i32) @@ -3041,7 +2783,213 @@ unreachable ) (func $~start - call $start:issues/1699 + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + block $__inlined_func$start:issues/1699 + memory.size + i32.const 16 + i32.shl + i32.const 18140 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1756 + i32.lt_s + br_if $folding-inner0 + 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 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1756 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 32 + call $~lib/memory/memory.fill + local.get $2 + local.get $3 + i32.store + local.get $3 + if + local.get $2 + local.get $3 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + local.get $3 + i32.store offset=4 + local.get $2 + i32.const 32 + i32.store offset=8 + local.get $2 + i32.const 3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + i32.store + call $issues/1699/MultiAssignmentTest#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $2 + i32.const 1 + local.get $0 + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $2 + i32.const 0 + local.get $0 + call $~lib/array/Array#__set + loop $for-loop|0 + local.get $2 + i32.load offset=12 + local.get $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + call $issues/1699/MultiAssignmentTest#constructor + local.tee $0 + i32.store offset=12 + local.get $1 + i32.const 1 + i32.gt_s + if + local.get $2 + local.get $1 + local.get $0 + call $~lib/array/Array#__set + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $2 + i32.const 0 + call $~lib/array/Array#__get + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + i32.const 1680 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 2 + call $~lib/array/Array#__get + local.get $2 + i32.const 1 + call $~lib/array/Array#__get + i32.eq + if + i32.const 0 + i32.const 1680 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$start:issues/1699 + end + i32.const 18160 + i32.const 18208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end ) (func $issues/1699/MultiAssignmentTest#constructor (result i32) (local $0 i32) diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index ccb97ded3c..61a435064f 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -674,38 +674,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1167,7 +1165,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 @@ -1204,13 +1202,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1244,16 +1242,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 @@ -1306,7 +1304,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1321,7 +1319,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1344,8 +1342,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 @@ -1358,11 +1356,11 @@ i32.const 0 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -1377,7 +1375,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 @@ -1389,7 +1387,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 local.get $0 i32.const 20 i32.add @@ -1409,19 +1407,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1431,22 +1429,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17908 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1460,7 +1458,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1472,7 +1470,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 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 $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1496,7 +1494,7 @@ else i32.const 1488 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1296 @@ -1506,7 +1504,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -1524,25 +1522,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 9c90698515..4f8758408a 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -678,38 +678,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1037,13 +1035,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1134,17 +1132,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1153,19 +1151,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1195,8 +1193,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1262,11 +1260,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1676 i32.lt_s @@ -1420,10 +1418,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 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1435,20 +1432,20 @@ local.tee $1 i64.const 0 i64.store - local.get $0 - i32.eqz - if - i32.const 1456 - i32.const 1520 - i32.const 36 - i32.const 9 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $0 - i32.store offset=4 - block $__inlined_func$~lib/rt/__instanceof14 (result i32) + block $__inlined_func$~lib/rt/__instanceof15 (result i32) + local.get $0 + i32.eqz + if + i32.const 1456 + i32.const 1520 + i32.const 36 + i32.const 9 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $0 + i32.store offset=4 local.get $0 i32.const 20 i32.sub @@ -1458,12 +1455,12 @@ i32.load i32.le_u if - loop $do-loop|015 + loop $do-loop|017 i32.const 1 local.get $1 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof14 + br_if $__inlined_func$~lib/rt/__instanceof15 drop local.get $1 i32.const 3 @@ -1472,7 +1469,7 @@ i32.add i32.load offset=4 local.tee $1 - br_if $do-loop|015 + br_if $do-loop|017 end end i32.const 0 @@ -1497,10 +1494,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 @@ -1512,7 +1508,7 @@ local.tee $2 i32.const 0 i32.store - block $__inlined_func$~lib/rt/__instanceof18 (result i32) + block $__inlined_func$~lib/rt/__instanceof19 (result i32) local.get $0 i32.const 20 i32.sub @@ -1522,12 +1518,12 @@ i32.load i32.le_u if - loop $do-loop|019 + loop $do-loop|021 i32.const 1 local.get $1 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof18 + br_if $__inlined_func$~lib/rt/__instanceof19 drop local.get $1 i32.const 3 @@ -1536,7 +1532,7 @@ i32.add i32.load offset=4 local.tee $1 - br_if $do-loop|019 + br_if $do-loop|021 end end i32.const 0 @@ -1560,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 @@ -1577,7 +1572,7 @@ i32.store local.get $0 if - block $__inlined_func$~lib/rt/__instanceof22 (result i32) + block $__inlined_func$~lib/rt/__instanceof24 (result i32) local.get $0 i32.const 20 i32.sub @@ -1587,12 +1582,12 @@ i32.load i32.le_u if - loop $do-loop|023 + loop $do-loop|026 i32.const 1 local.get $1 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof22 + br_if $__inlined_func$~lib/rt/__instanceof24 drop local.get $1 i32.const 3 @@ -1601,7 +1596,7 @@ i32.add i32.load offset=4 local.tee $1 - br_if $do-loop|023 + br_if $do-loop|026 end end i32.const 0 @@ -1676,11 +1671,12 @@ ) (func $managed-cast/Cat#constructor (result i32) (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1676 i32.lt_s @@ -1695,7 +1691,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 @@ -1719,6 +1715,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 @@ -1743,19 +1740,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1765,22 +1762,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18060 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1794,7 +1791,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1806,7 +1803,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1814,15 +1811,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1830,7 +1827,7 @@ else i32.const 1632 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1840,7 +1837,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1636 @@ -1858,25 +1855,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index bc6f9e6232..4d3a04ae76 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -714,38 +714,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1073,13 +1071,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1170,17 +1168,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1189,19 +1187,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1231,8 +1229,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1542,19 +1540,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1564,22 +1562,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17884 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1593,7 +1591,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1605,7 +1603,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 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 $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1629,7 +1627,7 @@ else i32.const 1440 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1639,7 +1637,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -1657,25 +1655,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index cdae122257..9ab69d4538 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -721,38 +721,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1178,11 +1176,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $4 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $2 + local.tee $1 i32.const 1073741820 i32.gt_u if @@ -1193,15 +1191,16 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $2 + local.get $1 i32.const 12 i32.le_u select @@ -1379,8 +1378,8 @@ i32.load offset=8 local.set $3 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $1 @@ -1694,25 +1693,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/util/number/itoa32 (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 4684 - i32.lt_s - if - i32.const 21088 - i32.const 21136 - 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 4684 + i32.lt_s + if + i32.const 21088 + i32.const 21136 + 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/itoa32 local.get $0 i32.eqz if @@ -1721,6 +1720,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 + local.set $0 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -1733,7 +1733,6 @@ i32.shr_u local.tee $2 select - local.tee $0 local.tee $1 i32.const 100000 i32.lt_u @@ -1786,15 +1785,15 @@ i32.const 1 i32.shl 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 call $~lib/util/number/utoa32_dec_lut local.get $2 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -1802,13 +1801,14 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -1843,47 +1843,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -1894,17 +1894,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -1917,14 +1916,16 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (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) @@ -1948,12 +1949,11 @@ i64.sub local.tee $12 i64.and - local.set $6 + local.set $7 local.get $1 local.get $0 i64.shr_u i32.wrap_i64 - local.tee $2 local.tee $5 i32.const 100000 i32.lt_u @@ -2000,9 +2000,9 @@ i32.add end end - local.set $8 + local.set $2 loop $while-continue|0 - local.get $8 + local.get $2 i32.const 0 i32.gt_s if @@ -2018,137 +2018,137 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $8 + local.get $2 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 end - local.get $2 + local.get $5 i32.const 1000000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 - local.set $5 + local.get $5 + local.set $6 i32.const 0 - local.set $2 + local.set $5 br $break|1 end i32.const 0 - local.set $5 + local.set $6 end local.get $4 - local.get $5 + local.get $6 i32.or if local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.const 1 i32.shl i32.const 3456 i32.add - local.get $5 + local.get $6 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 - local.get $6 - local.get $2 + local.set $2 + local.get $7 + local.get $5 i64.extend_i32_u local.get $10 i64.extend_i32_s @@ -2158,11 +2158,11 @@ local.get $3 i64.le_u if - local.get $8 + local.get $2 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 + local.get $2 i32.const 2 i32.shl i32.const 4384 @@ -2177,9 +2177,9 @@ i32.shl i32.const 3454 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|3 local.get $0 local.get $9 @@ -2197,11 +2197,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 @@ -2209,10 +2209,10 @@ i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $1 i64.add @@ -2220,8 +2220,8 @@ br $while-continue|3 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 return @@ -2234,7 +2234,7 @@ i64.const 10 i64.mul local.set $3 - local.get $6 + local.get $7 i64.const 10 i64.mul local.tee $0 @@ -2249,11 +2249,11 @@ i64.ne if local.get $4 - local.tee $2 + local.tee $5 i32.const 1 i32.add local.set $4 - local.get $2 + local.get $5 i32.const 1 i32.shl i32.const 3456 @@ -2266,26 +2266,26 @@ i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 + local.set $2 local.get $3 local.get $0 local.get $12 i64.and - local.tee $6 + local.tee $7 i64.le_u br_if $while-continue|4 end - local.get $8 + local.get $2 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 $8 + local.get $2 i32.sub i32.const 2 i32.shl @@ -2300,9 +2300,9 @@ i32.shl i32.const 3454 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|6 local.get $0 local.get $1 @@ -2320,22 +2320,22 @@ 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 i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $11 i64.add @@ -2343,8 +2343,8 @@ br $while-continue|6 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 ) @@ -3573,11 +3573,11 @@ ) (func $start:number (local $0 i32) - (local $1 i64) + (local $1 i32) (local $2 i64) (local $3 i64) (local $4 i64) - (local $5 i32) + (local $5 f64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3663,36 +3663,51 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $1 + local.tee $4 + i64.const 31 + i64.shl + local.set $2 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 i64.const 31 i64.shl - local.set $3 local.get $2 i64.const 32 i64.shr_u - local.tee $2 + i64.add + local.get $2 + i64.const 4294967295 + i64.and + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $3 i64.const 31 i64.shl - local.get $1 + local.get $4 i64.const 31 i64.shl - local.get $1 + local.get $4 i64.const 10 i64.shl i64.const 32 i64.shr_u i64.add - local.tee $4 + local.tee $2 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $2 i64.const 4294967295 i64.and - local.get $2 + local.get $3 i64.const 10 i64.shl i64.add @@ -3703,47 +3718,31 @@ i64.add i64.const 1 i64.sub - local.set $4 - local.get $2 - i64.const 31 - i64.shl - local.get $3 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 4294967295 - i64.and - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $4 + local.tee $2 global.get $~lib/util/number/_exp_pow i32.const 2 i32.add - local.get $4 local.get $2 + local.get $3 i64.const 2147483647 i64.mul - local.get $1 + local.get $4 i64.const 2147483647 i64.mul - local.get $1 + local.get $4 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $1 + local.tee $2 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $3 i64.const 4294966784 i64.mul - local.get $1 + local.get $2 i64.const 4294967295 i64.and i64.add @@ -3764,9 +3763,9 @@ global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store - local.get $5 + local.get $1 i32.const 3456 local.get $0 call $~lib/memory/memory.copy @@ -3776,12 +3775,12 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $5 + local.get $1 i32.store local.get $0 i32.const 4448 i32.store offset=4 - local.get $5 + local.get $1 i32.const 4448 call $~lib/string/String.__eq i32.eqz @@ -3795,15 +3794,15 @@ end i32.const 3 call $~lib/number/I32#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 + local.tee $0 + local.get $1 i32.store - local.get $5 + local.get $0 i32.const 4480 i32.store offset=4 - local.get $0 + local.get $1 i32.const 4480 call $~lib/string/String.__eq i32.eqz @@ -3817,15 +3816,15 @@ end i32.const -5 call $~lib/number/I32#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 + local.tee $0 + local.get $1 i32.store - local.get $5 + local.get $0 i32.const 4512 i32.store offset=4 - local.get $0 + local.get $1 i32.const 4512 call $~lib/string/String.__eq i32.eqz @@ -3839,15 +3838,15 @@ end i32.const 4 call $~lib/number/I32#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 + local.tee $0 + local.get $1 i32.store - local.get $5 + local.get $0 i32.const 4544 i32.store offset=4 - local.get $0 + local.get $1 i32.const 4544 call $~lib/string/String.__eq i32.eqz @@ -3865,15 +3864,15 @@ global.set $number/a global.get $number/a call $~lib/number/I32#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 + local.tee $0 + local.get $1 i32.store - local.get $5 + local.get $0 i32.const 4576 i32.store offset=4 - local.get $0 + local.get $1 i32.const 4576 call $~lib/string/String.__eq i32.eqz @@ -3891,15 +3890,15 @@ global.set $number/a global.get $number/a call $~lib/number/I32#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 + local.tee $0 + local.get $1 i32.store - local.get $5 + 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 @@ -3956,15 +3955,15 @@ global.set $number/a local.get $0 call $~lib/number/I32#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 + local.tee $0 + local.get $1 i32.store - local.get $5 + 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 @@ -3983,15 +3982,15 @@ global.set $number/a local.get $0 call $~lib/number/I32#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 + local.tee $0 + local.get $1 i32.store - local.get $5 + local.get $0 i32.const 4576 i32.store offset=4 - local.get $0 + local.get $1 i32.const 4576 call $~lib/string/String.__eq i32.eqz @@ -4024,19 +4023,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -4046,22 +4045,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 21068 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -4075,7 +4074,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -4087,7 +4086,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -4095,15 +4094,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -4111,7 +4110,7 @@ else i32.const 4656 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1472 @@ -4121,7 +4120,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 4660 @@ -4139,25 +4138,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 53b247c212..735ea92ee8 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1,11 +1,11 @@ (module (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) @@ -151,19 +151,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -181,61 +179,6 @@ local.get $0 i32.store offset=8 ) - (func $object-literal/Managed#set:baz (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - local.get $1 - if - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1104 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - end - ) (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) @@ -925,38 +868,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -972,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 $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 - 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) @@ -1274,7 +1215,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1073741820 i32.gt_u @@ -1286,6 +1226,7 @@ call $~lib/builtins/abort unreachable end + local.get $0 i32.const 12 local.get $1 i32.const 19 @@ -1395,7 +1336,7 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.set $4 + local.set $2 local.get $3 i32.const 4 i32.add @@ -1409,17 +1350,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and local.get $3 i32.sub - local.tee $2 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $2 i32.const 2 i32.and local.get $3 @@ -1430,19 +1371,19 @@ i32.const 4 i32.add i32.add - local.tee $3 - local.get $2 + local.tee $2 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store @@ -1543,8 +1484,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1754,6 +1695,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -1788,47 +1730,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -1839,17 +1781,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -1862,7 +1803,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) @@ -2649,15 +2592,19 @@ (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -2707,7 +2654,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -2736,7 +2683,10 @@ i32.store local.get $1 i32.const 1056 - call $object-literal/Managed#set:baz + i32.store offset=4 + local.get $1 + i32.const 1056 + call $byn-split-outlined-A$~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.tee $0 local.get $1 @@ -2748,7 +2698,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -2799,185 +2749,455 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $0 + local.tee $6 i32.const 0 i32.store - local.get $0 + local.get $6 i32.const 0 i32.store offset=4 - local.get $0 + local.get $6 i32.const 123 i32.store global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 1056 i32.store local.get $0 - call $~lib/string/String#substring - i32.store offset=4 - 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 1772 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load - i32.const 123 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load offset=4 - local.tee $2 - i32.store - local.get $1 - i32.const 1600 - i32.store offset=4 - local.get $2 - i32.const 1600 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 28 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 65 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 i32.const 0 i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i64.const 0 - i64.store offset=16 - local.get $0 - f32.const 0 - f32.store offset=24 - local.get $0 - f64.const 0 - f64.store offset=32 - local.get $0 - i32.const 0 - i32.store8 offset=40 - local.get $0 - i32.const 0 - i32.store8 offset=41 - local.get $0 i32.const 0 - i32.store16 offset=42 - local.get $0 - i32.const 0 - i32.store16 offset=44 - local.get $0 - i32.const 0 - i32.store offset=48 - local.get $0 - i32.const 0 - i32.store offset=52 - local.get $0 - f64.const 0 - f64.store offset=56 - local.get $0 - i32.const 0 - i32.store8 offset=64 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 5 + i32.const 1052 + i32.load + i32.const 1 + i32.shr_u + local.tee $0 local.get $0 + i32.const 5 + i32.gt_u + select + local.tee $1 + local.get $1 i32.const 0 - i32.store + i32.gt_s + select + i32.const 1 + i32.shl + local.set $2 + block $__inlined_func$~lib/string/String#substring + i32.const 0 + local.get $1 + local.get $1 + i32.const 0 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $1 + local.get $2 + i32.sub + local.tee $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1568 + local.set $4 + br $__inlined_func$~lib/string/String#substring + end + i32.const 0 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.eq + local.get $2 + select + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1056 + local.set $4 + br $__inlined_func$~lib/string/String#substring + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + block $~lib/util/memory/memmove|inlined.0 + local.get $4 + local.tee $0 + local.get $2 + i32.const 1056 + i32.add + local.tee $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $0 + i32.sub + local.get $5 + i32.sub + i32.const 0 + local.get $5 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $0 + local.get $1 + local.get $5 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.lt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $1 + i64.load + i64.store + local.get $5 + i32.const 8 + i32.sub + 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 $5 + if + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $0 + local.get $5 + i32.add + i32.const 7 + i32.and + if + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.add + local.get $1 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $5 + i32.const 8 + i32.sub + local.tee $5 + i32.add + local.get $1 + local.get $5 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $5 + if + local.get $0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + i32.add + local.get $1 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $6 + local.get $4 + i32.store offset=4 + 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 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $6 + i32.load + i32.const 123 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $6 + i32.load offset=4 + local.tee $1 + i32.store local.get $0 + i32.const 1600 + i32.store offset=4 + local.get $1 + i32.const 1600 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 28 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + 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 + global.get $~lib/memory/__stack_pointer + 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 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 65 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.store + local.get $1 i32.const 0 i32.store offset=4 - 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 f32.const 0 f32.store offset=24 - local.get $0 + local.get $1 f64.const 0 f64.store offset=32 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=40 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=41 - local.get $0 + local.get $1 i32.const 0 i32.store16 offset=42 - local.get $0 + local.get $1 i32.const 0 i32.store16 offset=44 - local.get $0 + local.get $1 i32.const 0 i32.store offset=48 - local.get $0 + local.get $1 i32.const 0 i32.store offset=52 - local.get $0 + local.get $1 f64.const 0 f64.store offset=56 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=64 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 0 i32.store - local.get $0 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=16 + local.get $1 + f32.const 0 + f32.store offset=24 + local.get $1 + f64.const 0 + f64.store offset=32 + local.get $1 + i32.const 0 + i32.store8 offset=40 + local.get $1 + i32.const 0 + i32.store8 offset=41 + local.get $1 + i32.const 0 + i32.store16 offset=42 + local.get $1 + i32.const 0 + i32.store16 offset=44 + local.get $1 + i32.const 0 + i32.store offset=48 + local.get $1 + i32.const 0 + i32.store offset=52 + local.get $1 + f64.const 0 + f64.store offset=56 + local.get $1 + i32.const 0 + i32.store8 offset=64 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.load if i32.const 0 @@ -2987,7 +3207,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 if i32.const 0 @@ -2997,7 +3217,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.load offset=8 i64.eqz i32.eqz @@ -3009,7 +3229,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.load offset=16 i64.eqz i32.eqz @@ -3021,7 +3241,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 f32.load offset=24 f32.const 0 f32.ne @@ -3033,7 +3253,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 f64.load offset=32 f64.const 0 f64.ne @@ -3045,7 +3265,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_s offset=40 if i32.const 0 @@ -3055,7 +3275,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=41 if i32.const 0 @@ -3065,7 +3285,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load16_s offset=42 if i32.const 0 @@ -3075,7 +3295,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load16_u offset=44 if i32.const 0 @@ -3085,7 +3305,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=48 if i32.const 0 @@ -3095,7 +3315,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=52 if i32.const 0 @@ -3105,7 +3325,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 f64.load offset=56 f64.const 0 f64.ne @@ -3117,7 +3337,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=64 if i32.const 0 @@ -3129,31 +3349,30 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + 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 16 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=4 - local.get $0 + local.get $1 f64.const 0 f64.store offset=8 global.get $~lib/memory/__stack_pointer @@ -3161,32 +3380,36 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 1632 - call $object-literal/Managed#set:baz - local.get $0 + i32.store offset=4 + local.get $1 + i32.const 1632 + call $byn-split-outlined-A$~lib/rt/itcms/__link + local.get $1 f64.const 0 f64.store offset=8 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.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 + local.get $1 i32.load if i32.const 0 @@ -3197,12 +3420,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $1 i32.load offset=4 local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 1632 i32.store offset=4 local.get $2 @@ -3217,7 +3440,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 f64.load offset=8 f64.const 0 f64.ne @@ -3234,90 +3457,89 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + 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 1772 i32.lt_s - br_if $folding-inner0 + 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 40 i32.const 6 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1664 i32.store - local.get $0 + local.get $1 i32.const 1664 - call $byn-split-outlined-A$~lib/rt/itcms/__link_0 - local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + local.get $1 i32.const 1696 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1696 - call $byn-split-outlined-A$~lib/rt/itcms/__link_0 - local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 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 - local.get $0 + local.get $1 i32.const 0 i32.store offset=24 - local.get $0 + local.get $1 i32.const 0 i32.store offset=28 - local.get $0 + local.get $1 i32.const 0 i32.store offset=32 - local.get $0 + local.get $1 i32.const -1 i32.store offset=36 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=16 - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 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 - local.get $0 + local.get $1 i32.const 0 i32.store offset=24 - local.get $0 + local.get $1 i32.const 0 i32.store offset=28 - local.get $0 + local.get $1 i32.const 0 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3326,17 +3548,17 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + 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 + local.get $1 i32.load local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 1664 i32.store offset=4 local.get $2 @@ -3352,12 +3574,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $1 i32.load offset=4 local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 1696 i32.store offset=4 local.get $2 @@ -3373,11 +3595,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -3390,11 +3612,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -3407,11 +3629,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=16 - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -3424,11 +3646,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=20 - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -3441,11 +3663,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=24 - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -3458,11 +3680,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=28 - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -3474,7 +3696,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=32 if i32.const 0 @@ -3484,7 +3706,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=36 i32.const -1 i32.ne @@ -3506,23 +3728,23 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 + loop $while-continue|017 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0 + br $while-continue|017 end end end call $~lib/rt/itcms/step drop - loop $while-continue|1 + loop $while-continue|118 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|1 + br $while-continue|118 end end global.get $~lib/rt/itcms/total @@ -3548,294 +3770,6 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/string/String#substring (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 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 1772 - i32.lt_s - if - i32.const 18176 - i32.const 18224 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 1052 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - local.get $0 - i32.const 0 - i32.gt_s - select - local.tee $1 - i32.const 5 - local.get $0 - local.get $0 - i32.const 5 - i32.gt_s - select - local.tee $2 - local.get $1 - local.get $2 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $3 - local.get $1 - local.get $2 - local.get $1 - local.get $2 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $1 - local.get $3 - i32.sub - local.tee $5 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1568 - return - end - i32.const 0 - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.eq - local.get $3 - select - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - return - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - block $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.tee $0 - local.get $3 - i32.const 1056 - i32.add - local.tee $1 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $0 - i32.sub - local.get $5 - i32.sub - i32.const 0 - local.get $5 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $0 - local.get $1 - local.get $5 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - local.get $1 - i32.lt_u - if - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $0 - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $1 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - 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 $5 - if - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $0 - local.get $5 - i32.add - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $0 - i32.add - local.get $1 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $0 - i32.add - local.get $1 - local.get $5 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $0 - i32.add - local.get $1 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) global.get $~lib/rt/itcms/white local.get $0 @@ -3855,7 +3789,7 @@ global.set $~lib/rt/itcms/visitCount end ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link_0 (param $0 i32) (param $1 i32) + (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $0 i32.eqz if diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index 4568d4669d..99cfd40ab5 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -686,38 +686,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1045,13 +1043,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1142,17 +1140,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1161,19 +1159,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1203,8 +1201,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1268,11 +1266,11 @@ ) (func $~start (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1484 i32.lt_s @@ -1337,10 +1335,9 @@ local.get $0 global.set $optional-typeparameters/tConcrete global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $optional-typeparameters/tConcrete i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1364,10 +1361,9 @@ local.get $0 global.set $optional-typeparameters/tDerived global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $optional-typeparameters/tDerived i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1388,19 +1384,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1410,22 +1406,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17868 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1439,7 +1435,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1451,7 +1447,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1459,15 +1455,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1475,7 +1471,7 @@ else i32.const 1440 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1485,7 +1481,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -1503,25 +1499,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/possibly-null.optimized.wat b/tests/compiler/possibly-null.optimized.wat index 42cc8af75c..0b5ec9002c 100644 --- a/tests/compiler/possibly-null.optimized.wat +++ b/tests/compiler/possibly-null.optimized.wat @@ -1,20 +1,20 @@ (module - (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_none (func (param i32 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/testTrue)) - (export "testFalseContinuation" (func $export:possibly-null/testTrue)) + (export "testFalseElse" (func $export:possibly-null/testFalseElse)) + (export "testFalseContinuation" (func $export:possibly-null/testFalseElse)) (export "testNeNull" (func $export:possibly-null/testTrue)) - (export "testEqNullElse" (func $export:possibly-null/testTrue)) - (export "testEqNullContinuation" (func $export:possibly-null/testTrue)) + (export "testEqNullElse" (func $export:possibly-null/testFalseElse)) + (export "testEqNullContinuation" (func $export:possibly-null/testFalseElse)) (export "testNotEqNull" (func $export:possibly-null/testTrue)) - (export "testNotNeNullElse" (func $export:possibly-null/testTrue)) - (export "testNotNeNullContinuation" (func $export:possibly-null/testTrue)) + (export "testNotNeNullElse" (func $export:possibly-null/testFalseElse)) + (export "testNotNeNullContinuation" (func $export:possibly-null/testFalseElse)) (export "testWhile" (func $export:possibly-null/testWhile)) (export "testWhile2" (func $export:possibly-null/testWhile2)) (export "testWhile3" (func $export:possibly-null/testWhile3)) @@ -50,6 +50,35 @@ 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 diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 3c74c1a97d..132b69fd0b 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -763,38 +763,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1122,13 +1120,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1219,17 +1217,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1238,19 +1236,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1280,8 +1278,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1311,28 +1309,29 @@ i32.const 20 i32.add local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 + local.tee $2 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 $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1643,11 +1642,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:exports/vehicles.Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1532 i32.lt_s @@ -1718,19 +1717,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1740,22 +1739,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17916 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1769,7 +1768,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1781,7 +1780,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1789,15 +1788,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1805,7 +1804,7 @@ else i32.const 1488 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1296 @@ -1815,7 +1814,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -1833,25 +1832,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index f96cd48ccd..39a0afc23c 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -725,38 +725,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1084,11 +1082,11 @@ ) (func $~start (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1572 i32.lt_s @@ -1233,7 +1231,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 @@ -1270,13 +1268,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1310,16 +1308,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 @@ -1372,7 +1370,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1387,7 +1385,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1410,8 +1408,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 @@ -1424,11 +1422,11 @@ i32.const 4 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -1443,7 +1441,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 @@ -1459,33 +1457,34 @@ i32.const 20 i32.add local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $2 + local.tee $3 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 $2 + local.get $3 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $3 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 local.get $0 i32.store local.get $0 @@ -1508,19 +1507,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1530,22 +1529,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17956 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1559,7 +1558,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1571,7 +1570,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1579,15 +1578,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1595,7 +1594,7 @@ else i32.const 1536 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1296 @@ -1605,7 +1604,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1540 @@ -1623,25 +1622,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index 6d7c35b4f4..7274d46239 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -205,19 +205,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -829,38 +827,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1286,11 +1282,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1301,15 +1297,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1487,8 +1484,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2491,25 +2488,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/util/number/utoa64 (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 3348 - i32.lt_s - if - i32.const 19760 - i32.const 19808 - 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 3348 + i32.lt_s + if + i32.const 19760 + i32.const 19808 + 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/utoa64 local.get $0 i64.eqz if @@ -2518,6 +2515,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1728 + local.set $2 br $__inlined_func$~lib/util/number/utoa64 end local.get $0 @@ -2527,48 +2525,48 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $2 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 @@ -2579,10 +2577,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 $3 call $~lib/util/number/utoa32_dec_lut else @@ -2637,25 +2635,25 @@ i32.add end end - 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 $3 + local.tee $1 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add local.get $0 local.get $0 @@ -2666,10 +2664,10 @@ i64.mul i64.sub i32.wrap_i64 - local.tee $4 + local.tee $3 i32.const 10000 i32.rem_u - local.tee $2 + local.tee $4 i32.const 100 i32.div_u i32.const 2 @@ -2677,7 +2675,7 @@ i32.const 1740 i32.add i64.load32_u - local.get $2 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -2689,15 +2687,15 @@ i64.shl i64.or i64.store - local.get $3 + 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 + local.get $3 i32.const 10000 i32.div_u local.tee $3 @@ -2723,33 +2721,43 @@ 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 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid block $resolve-access/Container - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $resolve-access/Container $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $resolve-access/Container $invalid + end + return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end return @@ -2798,77 +2806,129 @@ i32.const 1376 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/rt/__newArray (result i32) + (func $resolve-access/arrayAccess (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 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 3348 - i32.lt_s - if - i32.const 19760 - i32.const 19808 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - local.set $5 - i32.const 1056 - local.set $0 - block $~lib/util/memory/memmove|inlined.0 - i32.const 8 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3348 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $6 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $4 - local.tee $1 - i32.const 1056 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - i32.const 1048 - local.get $1 + i32.store + local.get $6 + i32.const 4 i32.sub - i32.const -16 - i32.le_u - if - local.get $1 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $1 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3348 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i32.const 0 + i32.store + i32.const 8 + local.set $7 i32.const 1056 - i32.lt_u - if + 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 $1 + i32.const 1056 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + i32.const 1048 local.get $1 - i32.const 7 - i32.and - i32.eqz + i32.sub + i32.const -16 + i32.le_u if - loop $while-continue|0 - local.get $1 - i32.const 7 - i32.and + local.get $1 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $1 + i32.const 1056 + i32.lt_u + if + local.get $1 + i32.const 7 + i32.and + i32.eqz + if + loop $while-continue|0 + local.get $1 + i32.const 7 + i32.and + if + local.get $7 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $7 + i32.const 8 + i32.ge_u + if + local.get $1 + local.get $0 + i64.load + i64.store + local.get $7 + i32.const 8 + i32.sub + 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 $7 if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 local.get $1 local.tee $2 i32.const 1 @@ -2883,244 +2943,184 @@ local.get $3 i32.load8_u i32.store8 - br $while-continue|0 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $while-continue|2 end end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if + else + local.get $1 + i32.const 7 + i32.and + i32.eqz + if + loop $while-continue|3 local.get $1 - local.get $0 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - local.get $1 - i32.const 8 + local.get $7 i32.add - local.set $1 - local.get $0 + i32.const 7 + i32.and + if + local.get $7 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $7 + i32.const 1 + i32.sub + local.tee $7 + local.get $1 + i32.add + local.get $7 + i32.const 1056 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $7 i32.const 8 - i32.add - local.set $0 - br $while-continue|1 + i32.ge_u + if + local.get $7 + i32.const 8 + i32.sub + local.tee $7 + local.get $1 + i32.add + local.get $7 + i32.const 1056 + i32.add + i64.load + i64.store + br $while-continue|4 + end end end - end - loop $while-continue|2 - local.get $5 - if - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $1 - i32.const 7 - i32.and - i32.eqz - if - loop $while-continue|3 - local.get $1 - local.get $5 - i32.add - i32.const 7 - i32.and + loop $while-continue|5 + local.get $7 if - local.get $5 - 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.tee $7 local.get $1 i32.add - local.get $5 + local.get $7 i32.const 1056 i32.add i32.load8_u i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $5 - i32.const 1056 - i32.add - i64.load - i64.store - br $while-continue|4 + br $while-continue|5 end end end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $5 - i32.const 1056 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - local.get $4 - i32.store - i32.const 16 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - local.get $4 - i32.store - local.get $4 - if - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable end - global.get $~lib/rt/itcms/white + local.get $5 local.get $4 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 + i32.store + i32.const 16 i32.const 3 - i32.and - i32.eq + call $~lib/rt/itcms/__new + local.tee $0 + local.get $4 + i32.store + local.get $4 if local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $4 i32.const 20 i32.sub + local.tee $1 i32.load offset=4 i32.const 3 i32.and - local.tee $2 - global.get $~lib/rt/itcms/white - i32.eqz i32.eq if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=4 i32.const 3 - i32.eq i32.and + local.tee $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq if local.get $1 call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $2 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end end end end - end - local.get $0 - local.get $4 - i32.store offset=4 - local.get $0 - i32.const 8 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $resolve-access/arrayAccess (result i32) - (local $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 3348 - i32.lt_s - if - i32.const 19760 - i32.const 19808 - i32.const 1 + local.get $0 + local.get $4 + i32.store offset=4 + local.get $0 + i32.const 8 + i32.store offset=8 + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - call $~lib/rt/__newArray - local.tee $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eqz - if - i32.const 1280 - i32.const 1488 - i32.const 107 - i32.const 42 - call $~lib/builtins/abort - unreachable + 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 $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eqz + if + i32.const 1280 + i32.const 1488 + i32.const 107 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i64.load + call $~lib/number/U64#toString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.load offset=4 - i64.load - call $~lib/number/U64#toString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 19760 + i32.const 19808 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $resolve-access/Container#constructor (result i32) (local $0 i32) @@ -3218,23 +3218,23 @@ local.get $0 i64.const 1 i64.store - block $__inlined_func$~lib/util/number/utoa32 (result i32) + local.get $0 + i64.load + i32.wrap_i64 + local.set $0 + 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 3348 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa32 local.get $0 - i64.load - i32.wrap_i64 - local.set $2 - 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 3348 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3242,56 +3242,57 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1728 + local.set $1 br $__inlined_func$~lib/util/number/utoa32 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 + local.tee $2 i32.const 1 i32.shl i32.const 1 @@ -3299,19 +3300,19 @@ local.tee $1 i32.store local.get $1 - local.get $2 local.get $0 + 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 $1 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 return end i32.const 19760 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index 5a2bd3e666..50b36ddc41 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -242,6 +242,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -276,47 +277,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -327,17 +328,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -350,7 +350,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/rt/itcms/visitRoots @@ -1014,38 +1016,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -1061,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 $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 - 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) @@ -1471,11 +1471,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1486,15 +1486,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1672,8 +1673,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1987,25 +1988,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/util/number/itoa32 (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 11292 - i32.lt_s - if - i32.const 27696 - i32.const 27744 - 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 11292 + i32.lt_s + if + i32.const 27696 + i32.const 27744 + 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/itoa32 local.get $0 i32.eqz if @@ -2014,6 +2015,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1408 + local.set $0 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -2026,7 +2028,6 @@ i32.shr_u local.tee $2 select - local.tee $0 local.tee $1 i32.const 100000 i32.lt_u @@ -2080,15 +2081,15 @@ 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 $1 local.get $3 call $~lib/util/number/utoa32_dec_lut local.get $2 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -2096,8 +2097,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) (local $4 i32) @@ -2132,9 +2133,7 @@ local.get $0 i64.shr_u i32.wrap_i64 - local.tee $2 - local.set $5 - local.get $2 + local.tee $5 i32.const 100000 i32.lt_u if (result i32) @@ -2180,9 +2179,9 @@ i32.add end end - local.set $8 + local.set $2 loop $while-continue|0 - local.get $8 + local.get $2 i32.const 0 i32.gt_s if @@ -2198,137 +2197,137 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $8 + local.get $2 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 end - local.get $2 + local.get $5 i32.const 1000000000 i32.div_u - local.set $5 - local.get $2 + local.set $7 + local.get $5 i32.const 1000000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000000 i32.div_u - local.set $5 - local.get $2 + local.set $7 + local.get $5 i32.const 100000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000000 i32.div_u - local.set $5 - local.get $2 + local.set $7 + local.get $5 i32.const 10000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000000 i32.div_u - local.set $5 - local.get $2 + local.set $7 + local.get $5 i32.const 1000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000 i32.div_u - local.set $5 - local.get $2 + local.set $7 + local.get $5 i32.const 100000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000 i32.div_u - local.set $5 - local.get $2 + local.set $7 + local.get $5 i32.const 10000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000 i32.div_u - local.set $5 - local.get $2 + local.set $7 + local.get $5 i32.const 1000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100 i32.div_u - local.set $5 - local.get $2 + local.set $7 + local.get $5 i32.const 100 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10 i32.div_u - local.set $5 - local.get $2 + local.set $7 + local.get $5 i32.const 10 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 - local.set $5 + local.get $5 + local.set $7 i32.const 0 - local.set $2 + local.set $5 br $break|1 end i32.const 0 - local.set $5 + local.set $7 end local.get $4 - local.get $5 + local.get $7 i32.or if local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.const 1 i32.shl i32.const 9760 i32.add - local.get $5 + local.get $7 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 + local.set $2 local.get $6 - local.get $2 + local.get $5 i64.extend_i32_u local.get $10 i64.extend_i32_s @@ -2338,11 +2337,11 @@ local.get $3 i64.le_u if - local.get $8 + local.get $2 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 + local.get $2 i32.const 2 i32.shl i32.const 10688 @@ -2357,9 +2356,9 @@ i32.shl i32.const 9758 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|3 local.get $0 local.get $9 @@ -2389,10 +2388,10 @@ i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $1 i64.add @@ -2400,8 +2399,8 @@ br $while-continue|3 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 return @@ -2429,11 +2428,11 @@ i64.ne if local.get $4 - local.tee $2 + local.tee $5 i32.const 1 i32.add local.set $4 - local.get $2 + local.get $5 i32.const 1 i32.shl i32.const 9760 @@ -2446,10 +2445,10 @@ i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 + local.set $2 local.get $3 local.get $0 local.get $12 @@ -2458,14 +2457,14 @@ i64.le_u br_if $while-continue|4 end - local.get $8 + local.get $2 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K local.get $6 local.set $0 i32.const 0 - local.get $8 + local.get $2 i32.sub i32.const 2 i32.shl @@ -2480,9 +2479,9 @@ i32.shl i32.const 9758 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|6 local.get $0 local.get $1 @@ -2512,10 +2511,10 @@ i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $11 i64.add @@ -2523,8 +2522,8 @@ br $while-continue|6 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 ) @@ -3404,6 +3403,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 @@ -3422,17 +3423,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 @@ -3449,26 +3450,26 @@ br $for-loop|0 end end - local.get $2 + local.get $3 i32.const 1 i32.shl i32.const 9760 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 9760 @@ -3490,16 +3491,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 @@ -3547,7 +3548,7 @@ i32.const 101 i32.store16 i32.const 9764 - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $0 @@ -3636,19 +3637,19 @@ local.get $1 i32.const 9760 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 @@ -3656,7 +3657,6 @@ local.set $1 end local.get $1 - local.get $1 i32.const 100000 i32.lt_u if (result i32) @@ -3702,14 +3702,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 @@ -3909,11 +3912,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 11292 i32.lt_s @@ -4861,12 +4864,11 @@ local.get $0 global.set $resolve-binary/foo global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + local.tee $0 i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 10880 @@ -4891,12 +4893,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 @@ -4921,12 +4922,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 @@ -4951,12 +4951,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 @@ -4981,12 +4980,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 @@ -5011,12 +5009,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 @@ -5041,12 +5038,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 @@ -5071,12 +5067,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 @@ -5101,12 +5096,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 @@ -5131,12 +5125,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 @@ -5161,12 +5154,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 @@ -5191,12 +5183,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 @@ -5224,23 +5215,22 @@ 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 $2 - global.set $resolve-binary/bar local.get $0 + global.set $resolve-binary/bar + local.get $1 global.get $resolve-binary/bar local.tee $0 i32.store local.get $0 - local.get $1 + local.get $2 i32.ne if i32.const 0 @@ -5315,19 +5305,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -5337,22 +5327,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 27676 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -5366,7 +5356,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -5378,7 +5368,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -5386,15 +5376,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -5402,7 +5392,7 @@ else i32.const 11248 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1632 @@ -5412,7 +5402,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 11252 @@ -5430,25 +5420,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index ea597c6070..dbe6daa73a 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -257,19 +257,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -881,38 +879,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1514,11 +1510,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1529,19 +1525,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1549,7 +1546,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1560,16 +1557,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -1580,16 +1577,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1597,7 +1594,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1605,8 +1602,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1623,7 +1620,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1633,13 +1630,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1652,40 +1649,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -1715,8 +1712,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1799,8 +1796,8 @@ ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result 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) @@ -1824,12 +1821,11 @@ i64.sub local.tee $12 i64.and - local.set $6 + local.set $7 local.get $1 local.get $0 i64.shr_u i32.wrap_i64 - local.tee $2 local.tee $5 i32.const 100000 i32.lt_u @@ -1876,9 +1872,9 @@ i32.add end end - local.set $8 + local.set $2 loop $while-continue|0 - local.get $8 + local.get $2 i32.const 0 i32.gt_s if @@ -1894,137 +1890,137 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $8 + local.get $2 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 end - local.get $2 + local.get $5 i32.const 1000000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 - local.set $5 + local.get $5 + local.set $6 i32.const 0 - local.set $2 + local.set $5 br $break|1 end i32.const 0 - local.set $5 + local.set $6 end local.get $4 - local.get $5 + local.get $6 i32.or if local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.const 1 i32.shl i32.const 1776 i32.add - local.get $5 + local.get $6 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 - local.get $6 - local.get $2 + local.set $2 + local.get $7 + local.get $5 i64.extend_i32_u local.get $10 i64.extend_i32_s @@ -2034,11 +2030,11 @@ local.get $3 i64.le_u if - local.get $8 + local.get $2 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 + local.get $2 i32.const 2 i32.shl i32.const 2704 @@ -2053,9 +2049,9 @@ i32.shl i32.const 1774 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|3 local.get $0 local.get $9 @@ -2073,11 +2069,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 @@ -2085,10 +2081,10 @@ i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $1 i64.add @@ -2096,8 +2092,8 @@ br $while-continue|3 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 return @@ -2110,7 +2106,7 @@ i64.const 10 i64.mul local.set $3 - local.get $6 + local.get $7 i64.const 10 i64.mul local.tee $0 @@ -2125,11 +2121,11 @@ i64.ne if local.get $4 - local.tee $2 + local.tee $5 i32.const 1 i32.add local.set $4 - local.get $2 + local.get $5 i32.const 1 i32.shl i32.const 1776 @@ -2142,26 +2138,26 @@ i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 + local.set $2 local.get $3 local.get $0 local.get $12 i64.and - local.tee $6 + local.tee $7 i64.le_u br_if $while-continue|4 end - local.get $8 + local.get $2 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 $8 + local.get $2 i32.sub i32.const 2 i32.shl @@ -2176,9 +2172,9 @@ i32.shl i32.const 1774 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|6 local.get $0 local.get $1 @@ -2196,22 +2192,22 @@ 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 i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $11 i64.add @@ -2219,8 +2215,8 @@ br $while-continue|6 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 ) @@ -3811,25 +3807,25 @@ (local $1 f64) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/util/number/dtoa (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/dtoa local.get $0 f64.promote_f32 local.tee $1 @@ -3841,6 +3837,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1632 + local.set $2 br $__inlined_func$~lib/util/number/dtoa end local.get $1 @@ -3858,6 +3855,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1664 + local.set $2 br $__inlined_func$~lib/util/number/dtoa end global.get $~lib/memory/__stack_pointer @@ -3870,34 +3868,36 @@ f64.const 0 f64.lt select + local.set $2 br $__inlined_func$~lib/util/number/dtoa end local.get $1 call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 - i32.const 1776 local.get $2 + i32.const 1776 + local.get $3 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 end + local.get $2 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -3932,47 +3932,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -3983,17 +3983,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -4006,7 +4005,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) @@ -4051,29 +4052,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 @@ -4081,56 +4082,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 @@ -4138,15 +4140,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 @@ -4189,11 +4191,11 @@ (func $start:resolve-elementaccess (local $0 i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 4852 i32.lt_s diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index 9b6256d256..805e1477e1 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -714,38 +714,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1171,11 +1169,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $4 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $2 + local.tee $1 i32.const 1073741820 i32.gt_u if @@ -1186,15 +1184,16 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $2 + local.get $1 i32.const 12 i32.le_u select @@ -1372,8 +1371,8 @@ i32.load offset=8 local.set $3 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $1 @@ -1621,6 +1620,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1693,239 +1693,242 @@ i32.store i32.const 1744 global.set $~lib/rt/itcms/fromSpace - i32.const 0 - i32.const 1200 - i32.load - call_indirect $0 (type $i32_=>_i32) - local.set $0 - 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 3460 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1424 - local.set $0 - br $__inlined_func$~lib/util/number/itoa32 - end + block $__inlined_func$~lib/string/String.__eq (result i32) i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - local.tee $3 - select - local.tee $1 + i32.const 1200 + i32.load + call_indirect $0 (type $i32_=>_i32) local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 100000 - i32.lt_u - if (result i32) + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3460 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32 local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1424 + local.set $3 + br $__inlined_func$~lib/util/number/itoa32 end - else + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub + local.get $0 local.get $0 - i32.const 10000000 + i32.const 31 + i32.shr_u + local.tee $2 + select + local.tee $0 + i32.const 100000 i32.lt_u if (result i32) local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end else local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $2 + i32.add + local.tee $1 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + loop $while-continue|0 local.get $0 - i32.const 100000000 + i32.const 10000 i32.ge_u - i32.add + if + local.get $0 + i32.const 10000 + i32.rem_u + local.set $4 + local.get $0 + i32.const 10000 + i32.div_u + local.set $0 + local.get $1 + i32.const 4 + i32.sub + local.tee $1 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 1836 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end - end - local.get $3 - i32.add - local.tee $2 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - loop $while-continue|0 - local.get $1 - i32.const 10000 + local.get $0 + i32.const 100 i32.ge_u if local.get $1 - i32.const 10000 - i32.rem_u - local.set $4 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $2 - i32.const 4 + i32.const 2 i32.sub - local.tee $2 + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $3 i32.add - local.get $4 + local.get $0 i32.const 100 - i32.div_u + i32.rem_u i32.const 2 i32.shl i32.const 1836 i32.add - i64.load32_u - local.get $4 + i32.load + i32.store + local.get $0 i32.const 100 - i32.rem_u + i32.div_u + local.set $0 + end + local.get $0 + i32.const 10 + i32.ge_u + if + local.get $1 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $0 i32.const 2 i32.shl i32.const 1836 i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.load + i32.store + else + local.get $1 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $0 + i32.const 48 + i32.add + i32.store16 end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 1836 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 1836 - i32.add - i32.load - i32.store - else local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $1 - i32.const 48 + if + local.get $3 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.store16 - end - local.get $3 - if - local.get $0 - i32.const 45 - i32.store16 + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 3408 - i32.store offset=4 - block $__inlined_func$~lib/string/String.__eq (result i32) - i32.const 1 + local.tee $0 + local.get $3 + i32.store local.get $0 i32.const 3408 + i32.store offset=4 + i32.const 3408 + local.set $2 + i32.const 1 + 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,79 +1936,76 @@ i32.ne br_if $__inlined_func$~lib/string/String.__eq drop - block $__inlined_func$~lib/util/string/compareImpl (result i32) - 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 + 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 + i64.load + local.get $2 + i64.load + i64.eq + if local.get $3 - i64.load - i64.eq - if - local.get $1 - i32.const 8 - i32.add - local.set $1 - 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 + 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 + 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 - i32.load16_u - local.tee $2 local.get $3 i32.load16_u local.tee $4 - i32.ne - if - local.get $2 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $1 - i32.const 2 - i32.add + local.get $2 + i32.load16_u + local.tee $5 + i32.sub local.set $1 + local.get $4 + local.get $5 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl 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 $1 end + local.get $1 i32.eqz end i32.eqz @@ -2038,19 +2038,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -2060,22 +2060,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 19844 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -2089,7 +2089,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -2101,7 +2101,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -2109,15 +2109,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -2125,7 +2125,7 @@ else i32.const 3424 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1648 @@ -2135,7 +2135,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3428 @@ -2153,25 +2153,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index fe058cc0aa..0312391376 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -683,38 +683,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1042,13 +1040,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1139,17 +1137,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1158,19 +1156,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1200,8 +1198,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1302,11 +1300,11 @@ ) (func $export:resolve-nested/Outer.InnerClass#constructor (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1492 i32.lt_s @@ -1355,11 +1353,11 @@ ) (func $export:resolve-nested/Outer.Inner.EvenInnerClass#constructor (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1492 i32.lt_s @@ -1525,19 +1523,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1547,22 +1545,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17876 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1576,7 +1574,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1588,7 +1586,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1596,15 +1594,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1612,7 +1610,7 @@ else i32.const 1440 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1622,7 +1620,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -1640,25 +1638,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index 8cc979a005..c452094e26 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -679,38 +679,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1114,7 +1112,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 @@ -1151,13 +1149,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1191,16 +1189,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 @@ -1253,7 +1251,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1268,7 +1266,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1291,8 +1289,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 @@ -1305,11 +1303,11 @@ i32.const 0 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -1324,7 +1322,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 @@ -1336,7 +1334,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 local.get $0 i32.const 20 i32.add @@ -1356,19 +1354,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1378,22 +1376,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17860 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1407,7 +1405,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1419,7 +1417,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1427,15 +1425,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1443,7 +1441,7 @@ else i32.const 1440 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1453,7 +1451,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -1471,25 +1469,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index d6680565ff..f214cfaec0 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -714,38 +714,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1171,11 +1169,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1186,15 +1184,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1372,8 +1371,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1584,25 +1583,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/util/number/itoa32 (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 3716 - i32.lt_s - if - i32.const 20128 - i32.const 20176 - 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 3716 + i32.lt_s + if + i32.const 20128 + i32.const 20176 + 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/itoa32 local.get $0 i32.eqz if @@ -1611,6 +1610,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -1621,63 +1621,62 @@ 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 $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 $2 + local.get $3 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store loop $while-continue|0 local.get $0 @@ -1687,20 +1686,20 @@ local.get $0 i32.const 10000 i32.rem_u - local.set $3 + local.set $4 local.get $0 i32.const 10000 i32.div_u local.set $0 - local.get $1 + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $4 + local.get $1 i32.add - local.get $3 + local.get $4 i32.const 100 i32.div_u i32.const 2 @@ -1708,7 +1707,7 @@ i32.const 1660 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -1727,13 +1726,13 @@ 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 $4 + local.get $1 i32.add local.get $0 i32.const 100 @@ -1753,12 +1752,12 @@ 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 $4 + local.get $1 i32.add local.get $0 i32.const 2 @@ -1768,21 +1767,21 @@ i32.load i32.store else - local.get $1 + local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl - local.get $4 + local.get $1 i32.add local.get $0 i32.const 48 i32.add i32.store16 end - local.get $2 + local.get $3 if - local.get $4 + local.get $1 i32.const 45 i32.store16 end @@ -1790,13 +1789,14 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end + local.get $1 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -1831,47 +1831,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -1882,17 +1882,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -1905,7 +1904,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/rt/__visit_members (param $0 i32) @@ -1943,11 +1944,11 @@ (func $start:resolve-propertyaccess (local $0 i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 3716 i32.lt_s @@ -2212,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 @@ -2221,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 @@ -2238,16 +2238,16 @@ 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 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 3632 i32.store offset=4 local.get $0 @@ -2305,19 +2305,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -2327,22 +2327,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 20100 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -2356,7 +2356,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -2368,7 +2368,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -2376,15 +2376,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -2392,7 +2392,7 @@ else i32.const 3680 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1472 @@ -2402,7 +2402,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3684 @@ -2420,25 +2420,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 7ae264bda3..19d10e82ea 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -718,38 +718,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1175,11 +1173,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $4 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $2 + local.tee $1 i32.const 1073741820 i32.gt_u if @@ -1190,15 +1188,16 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $2 + local.get $1 i32.const 12 i32.le_u select @@ -1376,8 +1375,8 @@ i32.load offset=8 local.set $3 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $1 @@ -1691,6 +1690,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -1725,47 +1725,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -1776,17 +1776,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -1799,14 +1798,16 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (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) @@ -1830,12 +1831,11 @@ i64.sub local.tee $12 i64.and - local.set $6 + local.set $7 local.get $1 local.get $0 i64.shr_u i32.wrap_i64 - local.tee $2 local.tee $5 i32.const 100000 i32.lt_u @@ -1882,9 +1882,9 @@ i32.add end end - local.set $8 + local.set $2 loop $while-continue|0 - local.get $8 + local.get $2 i32.const 0 i32.gt_s if @@ -1900,137 +1900,137 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $8 + local.get $2 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 end - local.get $2 + local.get $5 i32.const 1000000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 - local.set $5 + local.get $5 + local.set $6 i32.const 0 - local.set $2 + local.set $5 br $break|1 end i32.const 0 - local.set $5 + local.set $6 end local.get $4 - local.get $5 + local.get $6 i32.or if local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.const 1 i32.shl i32.const 3472 i32.add - local.get $5 + local.get $6 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 - local.get $6 - local.get $2 + local.set $2 + local.get $7 + local.get $5 i64.extend_i32_u local.get $10 i64.extend_i32_s @@ -2040,11 +2040,11 @@ local.get $3 i64.le_u if - local.get $8 + local.get $2 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 + local.get $2 i32.const 2 i32.shl i32.const 4400 @@ -2059,9 +2059,9 @@ i32.shl i32.const 3470 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|3 local.get $0 local.get $9 @@ -2079,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 @@ -2091,10 +2091,10 @@ i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $1 i64.add @@ -2102,8 +2102,8 @@ br $while-continue|3 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 return @@ -2116,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 @@ -2131,11 +2131,11 @@ i64.ne if local.get $4 - local.tee $2 + local.tee $5 i32.const 1 i32.add local.set $4 - local.get $2 + local.get $5 i32.const 1 i32.shl i32.const 3472 @@ -2148,26 +2148,26 @@ i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 + local.set $2 local.get $3 local.get $0 local.get $12 i64.and - local.tee $6 + local.tee $7 i64.le_u br_if $while-continue|4 end - local.get $8 + local.get $2 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 $8 + local.get $2 i32.sub i32.const 2 i32.shl @@ -2182,9 +2182,9 @@ i32.shl i32.const 3470 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|6 local.get $0 local.get $1 @@ -2202,22 +2202,22 @@ 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 i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $11 i64.add @@ -2225,8 +2225,8 @@ br $while-continue|6 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 ) @@ -3466,313 +3466,313 @@ if local.get $0 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-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-inner0 - 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-inner0 - 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 + return + 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 @@ -3789,19 +3789,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -3811,22 +3811,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 21028 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -3840,7 +3840,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -3852,7 +3852,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -3860,15 +3860,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -3876,7 +3876,7 @@ else i32.const 4608 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1472 @@ -3886,7 +3886,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 4612 @@ -3904,25 +3904,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 894b816720..8ae190069c 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -734,38 +734,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1191,11 +1189,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1206,15 +1204,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1392,8 +1391,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1604,25 +1603,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/util/number/itoa32 (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 3772 - i32.lt_s - if - i32.const 20176 - i32.const 20224 - 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 3772 + i32.lt_s + if + i32.const 20176 + i32.const 20224 + 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/itoa32 local.get $0 i32.eqz if @@ -1631,6 +1630,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -1641,63 +1641,62 @@ 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 $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 $2 + local.get $3 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store loop $while-continue|0 local.get $0 @@ -1707,20 +1706,20 @@ local.get $0 i32.const 10000 i32.rem_u - local.set $3 + local.set $4 local.get $0 i32.const 10000 i32.div_u local.set $0 - local.get $1 + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $4 + local.get $1 i32.add - local.get $3 + local.get $4 i32.const 100 i32.div_u i32.const 2 @@ -1728,7 +1727,7 @@ i32.const 1660 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -1747,13 +1746,13 @@ 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 $4 + local.get $1 i32.add local.get $0 i32.const 100 @@ -1773,12 +1772,12 @@ 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 $4 + local.get $1 i32.add local.get $0 i32.const 2 @@ -1788,21 +1787,21 @@ i32.load i32.store else - local.get $1 + local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl - local.get $4 + local.get $1 i32.add local.get $0 i32.const 48 i32.add i32.store16 end - local.get $2 + local.get $3 if - local.get $4 + local.get $1 i32.const 45 i32.store16 end @@ -1810,13 +1809,14 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end + local.get $1 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -1851,47 +1851,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -1902,17 +1902,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -1925,7 +1924,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/rt/__visit_members (param $0 i32) @@ -1966,12 +1967,11 @@ (func $start:resolve-unary (local $0 i32) (local $1 i32) - (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 3772 i32.lt_s @@ -2262,16 +2262,15 @@ local.get $0 global.set $resolve-unary/foo global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store offset=4 i32.const 3488 @@ -2472,16 +2471,15 @@ local.get $0 global.set $resolve-unary/bar global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/bar i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store offset=4 i32.const 3616 @@ -2523,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 @@ -2553,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 @@ -2602,19 +2598,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -2624,22 +2620,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 20156 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -2653,7 +2649,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -2665,7 +2661,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -2673,15 +2669,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -2689,7 +2685,7 @@ else i32.const 3728 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1472 @@ -2699,7 +2695,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3732 @@ -2717,25 +2713,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/return.optimized.wat b/tests/compiler/return.optimized.wat index 646c3e3cd5..64eb14b70d 100644 --- a/tests/compiler/return.optimized.wat +++ b/tests/compiler/return.optimized.wat @@ -71,10 +71,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$return/testVoidReturnFunction - local.get $0 - br_if $__inlined_func$return/testVoidReturnFunction - end local.get $1 i32.load call_indirect $0 (type $none_=>_none) diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index d4af2b697a..5cb5d51b6d 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -677,38 +677,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1066,7 +1064,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 @@ -1103,13 +1101,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1143,16 +1141,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 @@ -1205,7 +1203,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1220,7 +1218,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1243,8 +1241,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 @@ -1257,11 +1255,11 @@ i32.const 0 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -1276,7 +1274,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 @@ -1288,7 +1286,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 local.get $0 i32.const 20 i32.add @@ -1390,19 +1388,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1412,22 +1410,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17908 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1441,7 +1439,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1453,7 +1451,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 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 $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1477,7 +1475,7 @@ else i32.const 1488 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1487,7 +1485,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -1505,25 +1503,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index b76a919feb..f4a5f7a597 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -717,38 +717,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1076,13 +1074,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1173,17 +1171,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1192,19 +1190,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1234,8 +1232,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1387,7 +1385,7 @@ i32.load i32.le_u if - loop $do-loop|01 + loop $do-loop|02 i32.const 1 local.get $0 i32.const 5 @@ -1401,7 +1399,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|01 + br_if $do-loop|02 end end i32.const 0 @@ -1423,7 +1421,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof2 (result i32) + block $__inlined_func$~lib/rt/__instanceof3 (result i32) local.get $0 i32.const 20 i32.sub @@ -1433,12 +1431,12 @@ i32.load i32.le_u if - loop $do-loop|03 + loop $do-loop|05 i32.const 1 local.get $0 i32.const 4 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof2 + br_if $__inlined_func$~lib/rt/__instanceof3 drop local.get $0 i32.const 3 @@ -1447,7 +1445,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|03 + br_if $do-loop|05 end end i32.const 0 @@ -1470,7 +1468,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof4 (result i32) + block $__inlined_func$~lib/rt/__instanceof6 (result i32) local.get $0 i32.const 20 i32.sub @@ -1480,12 +1478,12 @@ i32.load i32.le_u if - loop $do-loop|05 + loop $do-loop|08 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof4 + br_if $__inlined_func$~lib/rt/__instanceof6 drop local.get $0 i32.const 3 @@ -1494,7 +1492,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|05 + br_if $do-loop|08 end end i32.const 0 @@ -1516,7 +1514,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof6 (result i32) + block $__inlined_func$~lib/rt/__instanceof9 (result i32) local.get $0 i32.const 20 i32.sub @@ -1526,12 +1524,12 @@ i32.load i32.le_u if - loop $do-loop|07 + loop $do-loop|011 i32.const 1 local.get $0 i32.const 4 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof6 + br_if $__inlined_func$~lib/rt/__instanceof9 drop local.get $0 i32.const 3 @@ -1540,7 +1538,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|07 + br_if $do-loop|011 end end i32.const 0 @@ -1563,7 +1561,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof8 (result i32) + block $__inlined_func$~lib/rt/__instanceof12 (result i32) local.get $0 i32.const 20 i32.sub @@ -1573,12 +1571,12 @@ i32.load i32.le_u if - loop $do-loop|09 + loop $do-loop|014 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof8 + br_if $__inlined_func$~lib/rt/__instanceof12 drop local.get $0 i32.const 3 @@ -1587,7 +1585,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|09 + br_if $do-loop|014 end end i32.const 0 @@ -1628,7 +1626,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof10 (result i32) + block $__inlined_func$~lib/rt/__instanceof15 (result i32) local.get $0 i32.const 20 i32.sub @@ -1638,12 +1636,12 @@ i32.load i32.le_u if - loop $do-loop|011 + loop $do-loop|017 i32.const 1 local.get $0 i32.const 4 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof10 + br_if $__inlined_func$~lib/rt/__instanceof15 drop local.get $0 i32.const 3 @@ -1652,7 +1650,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|011 + br_if $do-loop|017 end end i32.const 0 @@ -1674,7 +1672,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof12 (result i32) + block $__inlined_func$~lib/rt/__instanceof18 (result i32) local.get $0 i32.const 20 i32.sub @@ -1684,12 +1682,12 @@ i32.load i32.le_u if - loop $do-loop|013 + loop $do-loop|020 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof12 + br_if $__inlined_func$~lib/rt/__instanceof18 drop local.get $0 i32.const 3 @@ -1698,7 +1696,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|013 + br_if $do-loop|020 end end i32.const 0 @@ -1730,7 +1728,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof14 (result i32) + block $__inlined_func$~lib/rt/__instanceof21 (result i32) local.get $0 i32.const 20 i32.sub @@ -1740,12 +1738,12 @@ i32.load i32.le_u if - loop $do-loop|015 + loop $do-loop|023 i32.const 1 local.get $0 i32.const 4 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof14 + br_if $__inlined_func$~lib/rt/__instanceof21 drop local.get $0 i32.const 3 @@ -1754,7 +1752,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|015 + br_if $do-loop|023 end end i32.const 0 @@ -1777,7 +1775,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof16 (result i32) + block $__inlined_func$~lib/rt/__instanceof24 (result i32) local.get $0 i32.const 20 i32.sub @@ -1787,12 +1785,12 @@ i32.load i32.le_u if - loop $do-loop|017 + loop $do-loop|026 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof16 + br_if $__inlined_func$~lib/rt/__instanceof24 drop local.get $0 i32.const 3 @@ -1801,7 +1799,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|017 + br_if $do-loop|026 end end i32.const 0 @@ -1833,7 +1831,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof18 (result i32) + block $__inlined_func$~lib/rt/__instanceof27 (result i32) local.get $0 i32.const 20 i32.sub @@ -1843,12 +1841,12 @@ i32.load i32.le_u if - loop $do-loop|019 + loop $do-loop|029 i32.const 1 local.get $0 i32.const 4 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof18 + br_if $__inlined_func$~lib/rt/__instanceof27 drop local.get $0 i32.const 3 @@ -1857,7 +1855,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|019 + br_if $do-loop|029 end end i32.const 0 @@ -1880,7 +1878,7 @@ i32.store local.get $0 if (result i32) - block $__inlined_func$~lib/rt/__instanceof20 (result i32) + block $__inlined_func$~lib/rt/__instanceof30 (result i32) local.get $0 i32.const 20 i32.sub @@ -1890,12 +1888,12 @@ i32.load i32.le_u if - loop $do-loop|021 + loop $do-loop|032 i32.const 1 local.get $0 i32.const 5 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof20 + br_if $__inlined_func$~lib/rt/__instanceof30 drop local.get $0 i32.const 3 @@ -1904,7 +1902,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-loop|021 + br_if $do-loop|032 end end i32.const 0 @@ -2107,19 +2105,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -2129,22 +2127,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17940 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -2158,7 +2156,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -2170,7 +2168,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 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 $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -2194,7 +2192,7 @@ else i32.const 1504 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -2204,7 +2202,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -2222,25 +2220,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/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 36f878bfc5..9973399dfc 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 $1 + local.set $2 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -179,7 +179,7 @@ else i32.const 1568 i32.load - local.get $2 + local.get $1 i32.lt_u if i32.const 1248 @@ -189,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1572 @@ -198,33 +198,31 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 - local.get $1 + local.get $2 i32.load offset=8 - local.set $2 + local.set $1 local.get $0 - local.get $1 + local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and local.get $0 i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $0 i32.store offset=8 ) @@ -822,38 +820,111 @@ (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 + i32.const 17980 + 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 $0 i32.load offset=4 i32.const 3 @@ -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 - i32.const 17980 - 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 $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 - 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 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 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 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 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) @@ -1279,11 +1275,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1294,15 +1290,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1480,8 +1477,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1777,8 +1774,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/rt/runtime-minimal-export.optimized.wat b/tests/compiler/rt/runtime-minimal-export.optimized.wat index e36f1bfcb7..36c97bacdc 100644 --- a/tests/compiler/rt/runtime-minimal-export.optimized.wat +++ b/tests/compiler/rt/runtime-minimal-export.optimized.wat @@ -772,11 +772,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -787,19 +787,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -807,7 +808,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -818,16 +819,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -838,16 +839,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -855,7 +856,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -863,8 +864,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -881,7 +882,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -891,13 +892,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -910,40 +911,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -973,8 +974,8 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $0 global.get $~lib/rt/tcms/white + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -1138,8 +1139,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/tcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1435,9 +1436,9 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/tcms/white i32.eqz + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/rt/runtime-stub-export.optimized.wat b/tests/compiler/rt/runtime-stub-export.optimized.wat index 2c7bfa46b4..3992ea9b47 100644 --- a/tests/compiler/rt/runtime-stub-export.optimized.wat +++ b/tests/compiler/rt/runtime-stub-export.optimized.wat @@ -66,9 +66,9 @@ i32.sub local.tee $4 i32.add - local.tee $6 - memory.size local.tee $5 + memory.size + local.tee $6 i32.const 16 i32.shl i32.const 15 @@ -78,8 +78,8 @@ local.tee $7 i32.gt_u if - local.get $5 local.get $6 + local.get $5 local.get $7 i32.sub i32.const 65535 @@ -89,7 +89,7 @@ i32.const 16 i32.shr_u local.tee $7 - local.get $5 + local.get $6 local.get $7 i32.gt_s select @@ -106,7 +106,7 @@ end end end - local.get $6 + local.get $5 global.set $~lib/rt/stub/offset local.get $3 local.get $4 diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 0dd19d9487..ef10ca6f24 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -1721,7 +1721,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1073741820 i32.gt_u @@ -1733,6 +1732,7 @@ call $~lib/wasi/index/abort unreachable end + local.get $0 i32.const 12 local.get $1 i32.const 19 @@ -1842,7 +1842,7 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.set $4 + local.set $2 local.get $3 i32.const 4 i32.add @@ -1856,17 +1856,17 @@ call $~lib/wasi/index/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and local.get $3 i32.sub - local.tee $2 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $2 i32.const 2 i32.and local.get $3 @@ -1877,19 +1877,19 @@ i32.const 4 i32.add i32.add - local.tee $3 - local.get $2 + local.tee $2 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store @@ -1983,14 +1983,14 @@ end local.get $1 i32.load16_u offset=6 - local.tee $3 + local.tee $2 i32.const 128 i32.ge_u br_if $break|0 end local.get $1 i32.load16_u offset=4 - local.tee $2 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -2020,11 +2020,11 @@ i32.shl local.get $6 i32.or - local.get $2 + local.get $3 i32.const 16 i32.shl i32.or - local.get $3 + local.get $2 i32.const 24 i32.shl i32.or @@ -2049,28 +2049,29 @@ end return end - i32.const 0 - local.set $3 + local.get $1 local.get $1 local.tee $2 - local.get $2 + local.tee $3 i32.const 20 i32.sub i32.load offset=16 i32.add local.set $5 + i32.const 0 + local.set $1 loop $while-continue|0 - local.get $2 + local.get $3 local.get $5 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,63 +2089,61 @@ i32.const 55296 i32.eq local.get $5 - 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 - local.get $3 - local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $2 + 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 $4 local.get $2 - call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $4 local.get $3 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $1 i32.ne if i32.const 0 @@ -2155,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 @@ -2166,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 @@ -2346,19 +2345,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -2380,38 +2377,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -2427,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 $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 - 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/memory/memory.fill (param $0 i32) (param $1 i32) (local $2 i32) @@ -2851,26 +2846,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -3142,7 +3137,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -3158,7 +3153,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 24 @@ -3168,18 +3163,18 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $7 i32.ne if - local.get $5 + local.get $4 i32.load offset=16 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.load local.tee $8 i32.store offset=8 @@ -3187,7 +3182,7 @@ local.get $8 i32.store local.get $2 - local.get $5 + local.get $4 i64.load offset=8 i64.store offset=8 local.get $2 @@ -3197,7 +3192,7 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $8 i32.load @@ -3210,20 +3205,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 24 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end @@ -3361,25 +3356,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/util/number/utoa64 (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 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/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 7972 + i32.lt_s + if + i32.const 24384 + i32.const 24432 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 local.get $0 i64.eqz if @@ -3388,6 +3383,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 6000 + local.set $2 br $__inlined_func$~lib/util/number/utoa64 end local.get $0 @@ -3397,48 +3393,48 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $2 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 @@ -3449,10 +3445,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 $3 call $~lib/util/number/utoa32_dec_lut else @@ -3507,25 +3503,25 @@ i32.add end end - 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 $3 + local.tee $1 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add local.get $0 local.get $0 @@ -3536,10 +3532,10 @@ i64.mul i64.sub i32.wrap_i64 - local.tee $4 + local.tee $3 i32.const 10000 i32.rem_u - local.tee $2 + local.tee $4 i32.const 100 i32.div_u i32.const 2 @@ -3547,7 +3543,7 @@ i32.const 6012 i32.add i64.load32_u - local.get $2 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -3559,15 +3555,15 @@ i64.shl i64.or i64.store - local.get $3 + 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 + local.get $3 i32.const 10000 i32.div_u local.tee $3 @@ -3593,18 +3589,18 @@ 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 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -3647,13 +3643,13 @@ i32.mul local.get $0 i32.load offset=8 - local.tee $3 + local.tee $2 local.tee $0 i32.add - local.set $1 + local.set $3 loop $while-continue|0 local.get $0 - local.get $1 + local.get $3 i32.lt_u if local.get $0 @@ -3664,9 +3660,9 @@ if local.get $0 i32.load - local.tee $2 + local.tee $1 if - local.get $2 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__visit end end @@ -3677,9 +3673,9 @@ br $while-continue|0 end end - local.get $3 + local.get $2 if - local.get $3 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__visit end return @@ -3689,17 +3685,17 @@ (func $~start (local $0 i32) (local $1 i32) + global.get $~started + if + return + end + i32.const 1 + global.set $~started + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~started - if - return - end - i32.const 1 - global.set $~started - 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 7972 i32.lt_s @@ -3920,7 +3916,8 @@ if local.get $0 local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link_0 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 i32.const 3 @@ -3934,7 +3931,8 @@ if local.get $0 local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link_0 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 i32.const 4 @@ -4101,6 +4099,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4141,36 +4140,35 @@ if (result i32) i32.const 0 else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load - local.tee $4 - i32.store block $__inlined_func$~lib/string/String.__eq (result i32) + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load + local.tee $2 + i32.store i32.const 1 - local.get $4 local.get $1 - local.tee $2 + local.get $2 i32.eq br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $2 + local.get $1 i32.const 0 - local.get $4 + local.get $2 select i32.eqz br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $4 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u local.tee $0 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4179,79 +4177,81 @@ i32.ne br_if $__inlined_func$~lib/string/String.__eq drop - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $4 - i32.const 7 - i32.and - local.get $2 - 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 $4 - i64.load + local.get $2 + i32.const 7 + i32.and + local.get $1 + local.tee $3 + 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 local.get $2 - i64.load - i64.eq - if - local.get $4 - i32.const 8 - i32.add - local.set $4 - 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 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.sub local.set $0 - local.get $3 + local.get $4 if - local.get $4 - i32.load16_u - local.tee $3 local.get $2 i32.load16_u + local.tee $8 + local.get $3 + i32.load16_u local.tee $7 - i32.ne - if - local.get $3 - local.get $7 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $4 - i32.const 2 - i32.add + i32.sub local.set $4 + local.get $7 + local.get $8 + i32.ne + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add local.set $2 + local.get $3 + i32.const 2 + i32.add + local.set $3 br $while-continue|1 end end i32.const 0 + local.set $4 end + local.get $4 i32.eqz end end @@ -4282,11 +4282,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 7972 i32.lt_s @@ -4833,53 +4833,4 @@ end end ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link_0 (param $0 i32) (param $1 i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 4992 - i32.const 294 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) ) diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index b9bced5e12..4c09233d1f 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -821,19 +821,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -1495,38 +1493,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1844,7 +1840,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1073741820 i32.gt_u @@ -1856,6 +1851,7 @@ call $~lib/wasi/index/abort unreachable end + local.get $0 i32.const 12 local.get $1 i32.const 19 @@ -1965,7 +1961,7 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.set $4 + local.set $2 local.get $3 i32.const 4 i32.add @@ -1979,17 +1975,17 @@ call $~lib/wasi/index/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and local.get $3 i32.sub - local.tee $2 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $2 i32.const 2 i32.and local.get $3 @@ -2000,19 +1996,19 @@ i32.const 4 i32.add i32.add - local.tee $3 - local.get $2 + local.tee $2 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store @@ -2285,26 +2281,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -2772,7 +2768,6 @@ end ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 i32.const 255 i32.and @@ -2789,62 +2784,60 @@ i32.const 1 return end + local.get $0 local.get $1 i32.const 255 i32.and - local.tee $1 - local.tee $2 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $2 - local.get $0 - local.get $1 - local.get $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $0 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3727,44 +3720,47 @@ (local $5 i32) (local $6 i32) block $folding-inner1 - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $5 - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 6900 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4848 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - block $folding-inner0 - local.get $6 + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $5 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4848 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $5 i32.eqz if block $__inlined_func$~lib/util/number/utoa32 (result i32) - local.get $5 + local.get $3 i32.load8_u - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3776,7 +3772,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3787,47 +3783,47 @@ br $__inlined_func$~lib/util/number/utoa32 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 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 @@ -3838,152 +3834,150 @@ i32.shl 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 $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 $2 + local.get $0 end local.set $0 - br $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 6652 i32.load i32.const 1 i32.shr_u - local.tee $0 + local.tee $4 i32.const 10 i32.add i32.mul i32.const 10 i32.add - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $0 i32.store loop $for-loop|0 - local.get $2 + local.get $5 local.get $6 - i32.lt_s + i32.gt_s if local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $0 i32.add - local.get $2 - local.get $5 + local.get $3 + local.get $6 i32.add i32.load8_u call $~lib/util/number/itoa_buffered local.get $1 i32.add local.set $1 - local.get $0 + local.get $4 if local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $0 i32.add i32.const 6656 - local.get $0 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 local.get $1 + local.get $4 i32.add local.set $1 end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|0 end end - local.get $3 + local.get $2 local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $0 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 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - block $__inlined_func$~lib/string/String#substring (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 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $0 - i32.const 0 - local.get $0 + 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 6900 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + local.get $1 + local.get $4 + i32.lt_s + select + local.tee $1 + local.get $1 + i32.const 0 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $3 + block $__inlined_func$~lib/string/String#substring i32.const 0 - i32.gt_s - select - local.tee $0 local.get $1 - local.get $0 local.get $1 - i32.lt_s - select - local.tee $0 - local.get $0 - local.get $2 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $3 - local.get $2 - local.get $0 - local.get $0 - local.get $2 + i32.const 0 i32.lt_s select i32.const 1 i32.shl - local.tee $0 + local.tee $1 local.get $3 i32.sub local.tee $2 @@ -3994,13 +3988,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 + local.set $0 br $__inlined_func$~lib/string/String#substring end i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.eq local.get $3 select @@ -4009,18 +4004,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 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 $0 + local.tee $1 i32.store + local.get $1 local.get $0 local.get $3 - local.get $4 i32.add local.get $2 call $~lib/memory/memory.copy @@ -4028,25 +4022,23 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.set $0 end - local.set $0 - br $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - br $__inlined_func$~lib/util/string/joinIntegerArray end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 + return end - return end i32.const 23312 i32.const 23360 @@ -4059,32 +4051,32 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/string/String#concat (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 6900 - i32.lt_s - if - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/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 6900 + i32.lt_s + if + i32.const 23312 + i32.const 23360 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/string/String#concat i32.const 4764 i32.load i32.const 1 i32.shr_u i32.const 1 i32.shl - local.tee $1 + local.tee $2 local.get $0 i32.const 20 i32.sub @@ -4093,9 +4085,9 @@ i32.shr_u i32.const 1 i32.shl - local.tee $2 - i32.add local.tee $3 + i32.add + local.tee $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -4103,30 +4095,31 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 + local.set $1 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store - local.get $3 - i32.const 4768 local.get $1 + i32.const 4768 + local.get $2 call $~lib/memory/memory.copy local.get $1 - local.get $3 + local.get $2 i32.add local.get $0 - local.get $2 + local.get $3 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 end + local.get $1 ) (func $~lib/process/writeString (param $0 i32) (local $1 i32) @@ -4146,26 +4139,26 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 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 $1 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 end local.get $0 i32.load16_u offset=4 - local.tee $2 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 end local.get $0 i32.load16_u offset=2 - local.tee $3 + local.tee $1 i32.const 128 i32.ge_u br_if $break|0 @@ -4180,19 +4173,19 @@ i32.const 6680 i32.store i32.const 6676 - local.get $4 + local.get $2 i32.store i32.const 6680 - local.get $3 + local.get $1 i32.const 8 i32.shl local.get $5 i32.or - local.get $2 + local.get $4 i32.const 16 i32.shl i32.or - local.get $1 + local.get $3 i32.const 24 i32.shl i32.or @@ -4218,28 +4211,28 @@ return end local.get $0 - local.set $1 - i32.const 0 - local.set $2 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 $3 + local.set $4 + i32.const 0 + local.set $0 loop $while-continue|0 - local.get $1 local.get $3 + local.get $4 i32.lt_u if - local.get $1 + local.get $3 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 @@ -4247,7 +4240,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 2 i32.add else @@ -4256,64 +4249,62 @@ 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 $1 + local.get $3 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 $3 i32.const 4 i32.add - local.set $1 + local.set $3 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 $3 i32.const 2 i32.add - local.set $1 + local.set $3 br $while-continue|0 end end - local.get $2 - local.set $1 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 $0 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe@varargs local.get $2 + local.get $3 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $0 i32.ne if i32.const 0 @@ -4324,10 +4315,10 @@ unreachable end i32.const 6672 - local.get $1 + local.get $3 i32.store i32.const 6676 - local.get $2 + local.get $0 i32.store i32.const 1 i32.const 6672 @@ -4335,7 +4326,7 @@ i32.const 6680 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $1 + local.get $3 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -4469,11 +4460,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 6900 i32.lt_s @@ -4752,13 +4743,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 @@ -4837,7 +4828,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) - block $folding-inner0 + (local $6 i32) + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4845,134 +4837,142 @@ global.get $~lib/memory/__stack_pointer i32.const 6900 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 + local.tee $3 i32.const 0 i32.store i32.const 0 local.get $0 - local.tee $1 i32.load offset=8 - local.tee $0 - local.get $0 - i32.const 0 - i32.gt_s - select - local.set $3 - local.get $5 - local.get $0 - local.get $3 - i32.sub - local.tee $0 - i32.const 0 - local.get $0 + local.tee $4 + local.get $4 i32.const 0 i32.gt_s select - local.tee $4 local.set $2 - local.get $5 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - 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 6900 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - 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 $0 - i32.store - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 1073741820 - i32.gt_u - if - i32.const 1168 - i32.const 1216 - i32.const 18 - i32.const 57 - call $~lib/wasi/index/abort - unreachable + local.get $3 + block $__inlined_func$~lib/typedarray/Uint8Array#constructor (result i32) + local.get $4 + local.get $2 + i32.sub + local.tee $3 + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + local.tee $4 + local.set $5 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + 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 $1 + i32.store + end + local.get $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1168 + i32.const 1216 + i32.const 18 + i32.const 57 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $6 + local.get $5 + call $~lib/memory/memory.fill + local.get $1 + local.get $6 + i32.store + local.get $6 + if + local.get $1 + local.get $6 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $6 + i32.store offset=4 + local.get $1 + local.get $5 + 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 $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + br $__inlined_func$~lib/typedarray/Uint8Array#constructor + end + br $folding-inner1 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - local.get $5 - local.get $2 - call $~lib/memory/memory.fill - local.get $0 - local.get $5 + local.tee $1 i32.store - local.get $5 - if - local.get $0 - local.get $5 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $5 - i32.store offset=4 - local.get $0 + local.get $1 + i32.load offset=4 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 $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $0 i32.load offset=4 - local.get $3 - local.get $1 - i32.load offset=4 i32.add local.get $4 call $~lib/memory/memory.copy @@ -4980,7 +4980,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 return end i32.const 23312 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 497be7955f..dba70f0262 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -1707,7 +1707,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1073741820 i32.gt_u @@ -1719,6 +1718,7 @@ call $~lib/wasi/index/abort unreachable end + local.get $0 i32.const 12 local.get $1 i32.const 19 @@ -1828,7 +1828,7 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.set $4 + local.set $2 local.get $3 i32.const 4 i32.add @@ -1842,17 +1842,17 @@ call $~lib/wasi/index/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and local.get $3 i32.sub - local.tee $2 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $2 i32.const 2 i32.and local.get $3 @@ -1863,19 +1863,19 @@ i32.const 4 i32.add i32.add - local.tee $3 - local.get $2 + local.tee $2 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store @@ -1964,26 +1964,26 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 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 $1 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 end local.get $0 i32.load16_u offset=4 - local.tee $2 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 end local.get $0 i32.load16_u offset=2 - local.tee $3 + local.tee $1 i32.const 128 i32.ge_u br_if $break|0 @@ -1998,19 +1998,19 @@ i32.const 1096 i32.store i32.const 1092 - local.get $4 + local.get $2 i32.store i32.const 1096 - local.get $3 + local.get $1 i32.const 8 i32.shl local.get $5 i32.or - local.get $2 + local.get $4 i32.const 16 i32.shl i32.or - local.get $1 + local.get $3 i32.const 24 i32.shl i32.or @@ -2036,28 +2036,28 @@ return end local.get $0 - local.set $1 - i32.const 0 - local.set $2 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 $3 + local.set $4 + i32.const 0 + local.set $0 loop $while-continue|0 - local.get $1 local.get $3 + local.get $4 i32.lt_u if - local.get $1 + local.get $3 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 @@ -2074,64 +2074,62 @@ 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 $1 + local.get $3 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 $3 i32.const 4 i32.add - local.set $1 + local.set $3 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 $3 i32.const 2 i32.add - local.set $1 + local.set $3 br $while-continue|0 end end - local.get $2 - local.set $1 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 $0 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe@varargs local.get $2 + local.get $3 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $0 i32.ne if i32.const 0 @@ -2142,10 +2140,10 @@ unreachable end i32.const 1088 - local.get $1 + local.get $3 i32.store i32.const 1092 - local.get $2 + local.get $0 i32.store i32.const 1 i32.const 1088 @@ -2153,7 +2151,7 @@ i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $1 + local.get $3 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2363,19 +2361,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -2397,38 +2393,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -2444,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 - 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 $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 - 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/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if + global.set $~lib/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 - 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.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 2 + global.set $~lib/rt/itcms/state end - global.get $~lib/rt/itcms/toSpace - local.tee $0 + 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.store offset=4 - local.get $0 + 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.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state + 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 + 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/memory/memory.fill (param $0 i32) (param $1 i32) (local $2 i32) @@ -2868,26 +2862,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -4495,7 +4489,7 @@ local.tee $0 i32.add local.set $2 - loop $while-continue|03 + loop $while-continue|01 local.get $0 local.get $2 i32.lt_u @@ -4525,7 +4519,7 @@ i32.const 12 i32.add local.set $0 - br $while-continue|03 + br $while-continue|01 end end local.get $1 @@ -4608,11 +4602,11 @@ i32.shl i32.add i32.load - local.set $0 + local.set $2 loop $while-continue|0 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=8 local.tee $4 i32.const 1 @@ -4620,12 +4614,12 @@ if (result i32) i32.const 0 else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $3 - i32.store block $__inlined_func$~lib/string/String.__eq (result i32) + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.load + local.tee $3 + i32.store i32.const 1 local.get $1 local.get $3 @@ -4647,7 +4641,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 local.get $1 i32.const 20 i32.sub @@ -4660,7 +4654,7 @@ local.get $3 i32.const 0 local.get $1 - local.get $2 + local.get $0 call $~lib/util/string/compareImpl i32.eqz end @@ -4670,13 +4664,13 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 return end local.get $4 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|0 end end @@ -4696,11 +4690,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 7404 i32.lt_s @@ -4729,28 +4723,28 @@ end i32.const 1088 i32.load - local.tee $2 + local.tee $4 i32.const 2 i32.shl local.tee $0 i32.const 1092 i32.load i32.add - local.tee $3 - local.set $4 + local.tee $5 + local.set $1 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $4 + local.get $1 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $4 + local.tee $2 local.get $0 - local.get $4 + local.get $2 i32.add call $~lib/bindings/wasi_snapshot_preview1/environ_get local.tee $0 @@ -4766,8 +4760,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4783,75 +4776,76 @@ i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $0 i32.store - local.get $5 + local.get $0 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $6 i32.store - local.get $0 + local.get $6 if - local.get $5 local.get $0 + local.get $6 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 + local.get $0 i32.const 3 i32.store offset=4 - local.get $5 + local.get $0 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $6 i32.store offset=8 - local.get $0 + local.get $6 if - local.get $5 local.get $0 + local.get $6 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 + local.get $0 i32.const 4 i32.store offset=12 - local.get $5 + local.get $0 i32.const 0 i32.store offset=16 - local.get $5 + 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 $5 + local.get $1 + local.get $0 i32.store loop $for-loop|0 - local.get $1 - local.get $2 + local.get $3 + local.get $4 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.const 2 i32.shl - local.get $4 + local.get $2 i32.add i32.load - local.tee $0 - local.get $0 - local.get $3 + local.tee $1 + local.get $1 + local.get $5 i32.add - local.get $4 + local.get $2 i32.sub call $~lib/string/String.UTF8.decodeUnsafe local.tee $6 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store offset=8 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 @@ -4878,83 +4872,83 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $8 local.get $7 i32.sub local.set $8 - loop $for-loop|01 - local.get $0 + loop $for-loop|02 + local.get $1 local.get $8 i32.le_s if - local.get $0 + local.get $1 local.get $6 - local.get $0 + local.get $1 i32.const 5168 local.get $7 call $~lib/util/string/compareImpl i32.eqz br_if $__inlined_func$~lib/string/String#indexOf drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|01 + local.set $1 + br $for-loop|02 end end i32.const -1 end - local.tee $0 + local.tee $1 i32.const -1 i32.xor if local.get $6 i32.const 0 - local.get $0 + local.get $1 call $~lib/string/String#substring local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=8 local.get $6 - local.get $0 + 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 + local.get $1 i32.store offset=12 - local.get $5 - local.get $7 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 $5 + local.get $0 local.get $6 i32.const 5200 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0 end end - local.get $4 + 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 $5 + local.get $0 return end i32.const 23808 @@ -4966,832 +4960,833 @@ ) (func $start:std-wasi/process (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 1056 - i32.store - i32.const 1056 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4448 - i32.store - i32.const 4448 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4480 - i32.store - i32.const 4480 - call $~lib/console/console.log + (local $8 i32) + (local $9 i32) + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store - i32.const 4528 - call $~lib/console/console.log - memory.size - i32.const 16 - i32.shl - i32.const 23788 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 4708 - i32.const 4704 - i32.store - i32.const 4712 - i32.const 4704 - i32.store - i32.const 4704 - global.set $~lib/rt/itcms/pinSpace - i32.const 4740 - i32.const 4736 - i32.store - i32.const 4744 - i32.const 4736 - i32.store - i32.const 4736 - global.set $~lib/rt/itcms/toSpace - i32.const 4884 - i32.const 4880 - i32.store - i32.const 4888 - i32.const 4880 - i32.store - i32.const 4880 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 1088 - i32.const 1092 - call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get - local.tee $3 - i32.const 65535 - i32.and - if - local.get $3 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 64 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1088 - i32.load - local.tee $3 - i32.const 2 - i32.shl - local.tee $4 - i32.const 1092 - i32.load - i32.add - local.tee $5 - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $6 - local.get $4 - local.get $6 - i32.add - call $~lib/bindings/wasi_snapshot_preview1/args_get - local.tee $4 - i32.const 65535 - i32.and - if - local.get $4 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 71 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/array/Array<~lib/string/String>#constructor - local.tee $4 - i32.store - loop $for-loop|0 - local.get $2 - local.get $3 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 1056 + i32.store + i32.const 1056 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 4448 + i32.store + i32.const 4448 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 4480 + i32.store + i32.const 4480 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 4528 + i32.store + i32.const 4528 + call $~lib/console/console.log + memory.size + i32.const 16 + i32.shl + i32.const 23788 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 4708 + i32.const 4704 + i32.store + i32.const 4712 + i32.const 4704 + i32.store + i32.const 4704 + global.set $~lib/rt/itcms/pinSpace + i32.const 4740 + i32.const 4736 + i32.store + i32.const 4744 + i32.const 4736 + i32.store + i32.const 4736 + global.set $~lib/rt/itcms/toSpace + i32.const 4884 + i32.const 4880 + i32.store + i32.const 4888 + i32.const 4880 + i32.store + i32.const 4880 + global.set $~lib/rt/itcms/fromSpace + 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 7404 i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 1088 + i32.const 1092 + call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get + local.tee $5 + i32.const 65535 + i32.and if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - i32.shl - local.get $6 - i32.add - i32.load - local.tee $7 local.get $5 - local.get $7 - i32.add - local.get $6 - i32.sub - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $7 - i32.store offset=4 - local.get $4 - local.get $2 - local.get $7 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 64 + i32.const 12 + call $~lib/wasi/index/abort + unreachable end - end - 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 $4 - global.set $~lib/process/process.argv - global.get $~lib/process/process.argv - global.set $std-wasi/process/argv - global.get $~lib/memory/__stack_pointer - i32.const 4928 - i32.store - i32.const 4928 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/process/argv - local.tee $2 - i32.store - local.get $2 - i32.load offset=12 - local.set $2 - loop $for-loop|00 - local.get $0 - local.get $2 - i32.lt_s + i32.const 1088 + i32.load + local.tee $5 + i32.const 2 + i32.shl + local.tee $6 + i32.const 1092 + i32.load + i32.add + local.tee $7 + local.set $8 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/process/argv - local.tee $3 - i32.store offset=4 - local.get $3 - local.get $0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/console/console.log - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 + call $~lib/rt/tlsf/initialize end - end - call $~lib/process/lazyEnv - global.set $~lib/process/process.env - global.get $~lib/process/process.env - global.set $std-wasi/process/env - global.get $~lib/memory/__stack_pointer - local.tee $3 - global.get $std-wasi/process/env - local.tee $4 - i32.store - i32.const 0 - local.set $2 - i32.const 0 - local.set $0 - local.get $3 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $4 - i32.load offset=8 - local.set $5 - local.get $3 - local.get $4 - i32.load offset=16 - local.tee $3 - call $~lib/array/Array<~lib/string/String>#constructor - local.tee $4 - i32.store - loop $for-loop|01 - local.get $2 - local.get $3 - i32.lt_s + global.get $~lib/rt/tlsf/ROOT + local.get $8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $8 + local.get $6 + local.get $8 + i32.add + call $~lib/bindings/wasi_snapshot_preview1/args_get + local.tee $6 + i32.const 65535 + i32.and if - local.get $2 + local.get $6 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 71 i32.const 12 - i32.mul + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $6 + i32.store + loop $for-loop|0 + local.get $1 local.get $5 - i32.add - local.tee $6 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 + i32.const 2 + i32.shl + local.get $8 + i32.add i32.load - local.tee $6 + local.tee $9 + local.get $7 + local.get $9 + i32.add + local.get $8 + i32.sub + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $9 i32.store offset=4 - local.get $4 - local.get $0 local.get $6 + local.get $1 + local.get $9 call $~lib/array/Array<~lib/string/String>#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 + br $for-loop|0 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|01 end - end - local.get $4 - local.get $0 - i32.const 0 - call $~lib/array/ensureCapacity - local.get $4 - 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 $4 - global.set $std-wasi/process/envKeys - global.get $~lib/memory/__stack_pointer - i32.const 5232 - i32.store - i32.const 5232 - call $~lib/console/console.log - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/process/envKeys - local.tee $2 - i32.store - local.get $2 - i32.load offset=12 - local.set $2 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $3 - global.get $std-wasi/process/envKeys - local.tee $4 - i32.store - local.get $3 - local.get $4 - local.get $0 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5280 - i32.store offset=4 - i32.const 5280 - call $~lib/process/writeString - local.get $3 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 5312 - i32.store offset=4 - i32.const 5312 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/process/env - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $3 + local.get $8 + 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 + global.set $~lib/process/process.argv + global.get $~lib/process/process.argv + global.set $std-wasi/process/argv + global.get $~lib/memory/__stack_pointer + i32.const 4928 + i32.store + i32.const 4928 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/process/argv + local.tee $1 + i32.store + local.get $1 + i32.load offset=12 + local.set $1 + loop $for-loop|01 + local.get $1 local.get $3 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.tee $3 - i32.eqz + i32.gt_s if - i32.const 5344 - i32.const 5408 - i32.const 105 - i32.const 17 - call $~lib/wasi/index/abort - unreachable + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/process/argv + local.tee $5 + i32.store offset=4 + local.get $5 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + call $~lib/console/console.log + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|01 end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $3 - i32.store - local.get $3 - call $~lib/console/console.log - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - i32.const 5456 - i32.store - i32.const 5456 - call $~lib/console/console.log - i32.const 0 - i64.const 1000000 - i32.const 1088 - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 51 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1088 - i64.load - i64.const 1000000 - i64.div_u - local.set $1 - 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 7404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa64 + call $~lib/process/lazyEnv + global.set $~lib/process/process.env + global.get $~lib/process/process.env + global.set $std-wasi/process/env + global.get $~lib/memory/__stack_pointer + local.tee $1 + global.get $std-wasi/process/env + local.tee $3 + i32.store local.get $1 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 5696 - local.set $0 - br $__inlined_func$~lib/util/number/itoa64 - end + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 i64.const 0 + i64.store + local.get $3 + i32.load offset=8 + local.set $5 local.get $1 - i64.sub - local.get $1 - local.get $1 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $2 - select - local.tee $1 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.wrap_i64 - local.tee $3 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.get $2 - i32.add - local.tee $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 + local.get $3 + i32.load offset=16 + local.tee $3 + call $~lib/array/Array<~lib/string/String>#constructor + local.tee $6 + i32.store + loop $for-loop|02 local.get $3 local.get $4 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 + i32.gt_s + if + local.get $4 + i32.const 12 + i32.mul + local.get $5 + i32.add + local.tee $7 + 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 + i32.load + local.tee $7 + i32.store offset=4 + local.get $6 local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add + local.get $7 + call $~lib/array/Array<~lib/string/String>#__set end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|02 end - local.get $2 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + end + local.get $6 + local.get $0 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $6 + 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 + global.set $std-wasi/process/envKeys + global.get $~lib/memory/__stack_pointer + i32.const 5232 + i32.store + i32.const 5232 + call $~lib/console/console.log + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/process/envKeys + local.tee $1 + i32.store + local.get $1 + i32.load offset=12 + local.set $1 + loop $for-loop|1 local.get $0 local.get $1 - local.get $3 - call $~lib/util/number/utoa64_dec_lut + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.tee $3 + global.get $std-wasi/process/envKeys + local.tee $4 + i32.store + local.get $3 + local.get $4 + local.get $0 + call $~lib/array/Array<~lib/string/String>#__get + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 5280 + i32.store offset=4 + i32.const 5280 + call $~lib/process/writeString + local.get $3 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 5312 + i32.store offset=4 + i32.const 5312 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/process/env + local.tee $4 + i32.store offset=4 + local.get $4 + local.get $3 + local.get $3 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,~lib/string/String>#find + local.tee $3 + i32.eqz + if + i32.const 5344 + i32.const 5408 + i32.const 105 + i32.const 17 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $3 + i32.store + local.get $3 + call $~lib/console/console.log + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end end - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store + i32.const 5456 + call $~lib/console/console.log + i32.const 0 + i64.const 1000000 + i32.const 1088 + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.tee $0 + i32.const 65535 + i32.and if local.get $0 - i32.const 45 - i32.store16 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 51 + i32.const 14 + call $~lib/wasi/index/abort + unreachable end + i32.const 1088 + i64.load + i64.const 1000000 + i64.div_u + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7280 - i32.store - i32.const 7280 - call $~lib/console/console.log - i32.const 1 - i64.const 0 - i32.const 1088 - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 57 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1088 - i64.load - local.set $1 - 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 7404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64 - local.get $1 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 5696 - local.set $0 - br $__inlined_func$~lib/util/number/utoa64 - end - local.get $1 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 7404 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa64 + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 5696 + local.set $1 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $2 + i64.sub + local.get $2 + local.get $2 + i64.const 63 + i64.shr_u i32.wrap_i64 - local.tee $2 local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 + select + local.tee $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $3 + local.tee $1 + i32.const 100000 i32.lt_u if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end end - else local.get $0 - i32.const 10000000 - i32.lt_u + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $3 + local.get $4 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end end + local.get $0 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $2 + local.get $3 + call $~lib/util/number/utoa64_dec_lut end - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store 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 $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) + if local.get $1 - i64.const 1000000000000 - i64.lt_u + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 7280 + i32.store + i32.const 7280 + call $~lib/console/console.log + i32.const 1 + i64.const 0 + i32.const 1088 + call $~lib/bindings/wasi_snapshot_preview1/clock_time_get + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 57 + i32.const 14 + call $~lib/wasi/index/abort + unreachable + end + i32.const 1088 + i64.load + local.set $2 + 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 7404 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 5696 + local.set $1 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $0 + local.tee $1 + i32.const 100000 + i32.lt_u if (result i32) local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end else local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end end - else + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store local.get $1 - i64.const 100000000000000000 + local.get $0 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end end + local.tee $0 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $2 + local.get $0 + call $~lib/util/number/utoa64_dec_lut end - local.tee $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store + i32.const 7328 + call $~lib/console/console.log + i32.const 42 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $1 + i32.const 1088 + local.get $0 + i32.store + i32.const 1092 + local.get $1 + i32.store + i32.const 0 + i32.const 1088 + i32.const 1 + i32.const 1096 + call $~lib/bindings/wasi_snapshot_preview1/fd_read + local.tee $0 + i32.const 65535 + i32.and + if local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa64_dec_lut + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 140 + i32.const 14 + call $~lib/wasi/index/abort + unreachable end + i32.const 1096 + i32.load + drop global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7328 - i32.store - i32.const 7328 - call $~lib/console/console.log - i32.const 42 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $2 - i32.const 1088 - local.get $0 - i32.store - i32.const 1092 - local.get $2 - i32.store - i32.const 0 - i32.const 1088 - i32.const 1 - i32.const 1096 - call $~lib/bindings/wasi_snapshot_preview1/fd_read - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 140 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1096 - i32.load - drop - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end i32.const 23808 i32.const 23856 @@ -6262,9 +6257,10 @@ i32.gt_s select local.tee $2 - local.get $2 + local.tee $4 local.get $3 - i32.gt_s + local.get $4 + i32.lt_s select i32.const 1 i32.shl diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index c2e737cf0d..c4daf0c5b8 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -24,96 +24,86 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) + i32.const 1292 + i32.load + i32.const 1 + i32.shr_u + local.tee $2 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 - drop - i32.const 0 - local.set $2 - local.get $1 - local.get $2 - i32.const 1292 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.add - i32.lt_s + i32.gt_s if i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - i32.const 1296 - local.set $3 - local.get $2 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.tee $2 - i32.const 7 - i32.and - i32.eqz - local.get $1 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 - local.get $2 - i64.load + i32.const 1296 + 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 local.get $3 - 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 $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 - local.get $1 - local.tee $0 + local.get $0 + local.tee $2 i32.const 1 i32.sub - local.set $1 - local.get $0 + local.set $0 + 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 $0 + local.tee $5 + i32.sub + local.set $2 + local.get $4 + local.get $5 i32.ne - if - local.get $0 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $2 + br_if $__inlined_func$~lib/util/string/compareImpl + local.get $1 i32.const 2 i32.add - local.set $2 + local.set $1 local.get $3 i32.const 2 i32.add @@ -122,7 +112,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz ) (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) @@ -184,11 +176,11 @@ ) (func $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1308 i32.lt_s @@ -249,11 +241,11 @@ ) (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1308 i32.lt_s @@ -305,11 +297,11 @@ ) (func $export:std/array-access/stringArrayMethodCall (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1308 i32.lt_s @@ -360,11 +352,11 @@ ) (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1308 i32.lt_s @@ -423,11 +415,11 @@ ) (func $export:std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1308 i32.lt_s diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index ef5d2c9f11..bf651869e7 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -278,19 +278,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -902,38 +900,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1359,11 +1355,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1374,15 +1370,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1560,8 +1557,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1831,16 +1828,26 @@ block $std/array-literal/RefWithCtor block $~lib/array/Array block $std/array-literal/Ref - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $std/array-literal/Ref $~lib/array/Array $std/array-literal/RefWithCtor $~lib/array/Array $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $std/array-literal/Ref $~lib/array/Array $std/array-literal/RefWithCtor $~lib/array/Array $invalid + end + return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end return diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index ffd65decf8..4830d40836 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1,8 +1,8 @@ (module (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) @@ -18,7 +18,6 @@ (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) - (type $i64_=>_none (func (param i64))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) (type $i32_i64_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i64 i32 i64 i32) (result i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) @@ -892,19 +891,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -1566,38 +1563,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -1613,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 $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 - 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) @@ -1915,7 +1910,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1073741820 i32.gt_u @@ -1927,6 +1921,7 @@ call $~lib/builtins/abort unreachable end + local.get $0 i32.const 12 local.get $1 i32.const 19 @@ -2036,7 +2031,7 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.set $4 + local.set $2 local.get $3 i32.const 4 i32.add @@ -2050,17 +2045,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and local.get $3 i32.sub - local.tee $2 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $2 i32.const 2 i32.and local.get $3 @@ -2071,19 +2066,19 @@ i32.const 4 i32.add i32.add - local.tee $3 - local.get $2 + local.tee $2 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store @@ -2371,26 +2366,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -3483,6 +3478,7 @@ (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) local.get $0 i32.load offset=8 local.tee $5 @@ -3516,9 +3512,9 @@ local.get $2 i32.shl local.set $1 - block $__inlined_func$~lib/rt/itcms/__renew (result i32) + block $__inlined_func$~lib/rt/itcms/__renew local.get $3 - if + if (result i32) local.get $5 i32.const 1 i32.shl @@ -3534,13 +3530,15 @@ local.get $2 i32.lt_u select - local.set $1 + else + local.get $1 end - local.get $1 + local.tee $2 local.get $4 + local.tee $1 i32.const 20 i32.sub - local.tee $2 + local.tee $6 i32.load i32.const -4 i32.and @@ -3548,57 +3546,57 @@ i32.sub i32.le_u if + local.get $6 local.get $2 - local.get $1 i32.store offset=16 - local.get $4 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $1 local.get $2 + local.get $6 i32.load offset=12 call $~lib/rt/itcms/__new local.tee $3 - local.get $4 local.get $1 local.get $2 + local.get $6 i32.load offset=16 - local.tee $2 + local.tee $1 local.get $1 local.get $2 - i32.lt_u + i32.gt_u select call $~lib/memory/memory.copy local.get $3 + local.set $1 end - local.tee $2 + local.get $1 local.get $5 i32.add i32.const 0 - local.get $1 + local.get $2 local.get $5 i32.sub call $~lib/memory/memory.fill - local.get $2 + local.get $1 local.get $4 i32.ne if local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 if local.get $0 - local.get $2 + local.get $1 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end end local.get $0 - local.get $1 + local.get $2 i32.store offset=8 end ) @@ -3952,19 +3950,6 @@ i64.const 8 i64.shl i64.or - local.tee $3 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $3 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr local.set $3 local.get $6 local.get $0 @@ -4001,6 +3986,18 @@ i64.store local.get $6 local.get $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr i64.store local.get $2 i32.const 8 @@ -4555,65 +4552,6 @@ local.get $1 i32.add ) - (func $~lib/math/NativeMath.seedRandom (param $0 i64) - (local $1 i64) - (local $2 i32) - i64.const -7046029254386353131 - local.get $0 - local.get $0 - i64.eqz - select - local.tee $0 - i64.const 33 - i64.shr_u - local.get $0 - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $1 - i64.const 33 - i64.shr_u - local.get $1 - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $1 - i64.const 33 - i64.shr_u - local.get $1 - i64.xor - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - local.tee $1 - i64.const 33 - i64.shr_u - local.get $1 - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $1 - i64.const 33 - i64.shr_u - local.get $1 - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $1 - i64.const 33 - i64.shr_u - local.get $1 - i64.xor - global.set $~lib/math/random_state1_64 - local.get $0 - i32.wrap_i64 - i32.const 1831565813 - i32.add - local.set $2 - i32.const 1 - global.set $~lib/math/random_seeded - ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 f32) (local $6 f32) @@ -7998,9 +7936,58 @@ global.get $~lib/math/random_seeded i32.eqz if + i64.const -7046029254386353131 call $~lib/builtins/seed i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom + local.tee $0 + local.get $0 + i64.eqz + select + local.tee $0 + i64.const 33 + i64.shr_u + local.get $0 + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + i64.const 33 + i64.shr_u + local.get $0 + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $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 + i64.const 33 + i64.shr_u + local.get $0 + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + i64.const 33 + i64.shr_u + local.get $0 + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $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 $1 @@ -8014,9 +8001,9 @@ local.get $1 i64.xor local.tee $1 + local.get $1 i64.const 17 i64.shr_u - local.get $1 i64.xor i64.xor local.get $0 @@ -8095,44 +8082,46 @@ 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 $3 i32.store offset=4 local.get $6 - local.set $3 + local.set $5 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 - local.get $5 - local.set $3 - local.get $6 + if (result i32) + local.get $3 local.set $5 + local.get $6 + else + local.get $3 end + local.set $6 local.get $7 i32.const 1 i32.sub - local.set $6 + local.set $3 loop $while-continue|1 local.get $1 - local.get $6 + local.get $3 i32.le_s if block $while-break|1 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.const 2 i32.shl local.get $0 @@ -8150,22 +8139,22 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $6 + local.get $3 i32.const 2 i32.shl local.get $0 i32.add local.get $8 i32.store offset=8 - local.get $6 + local.get $3 i32.const 1 i32.sub - local.set $6 + local.set $3 br $while-continue|1 end end end - local.get $6 + local.get $3 i32.const 2 i32.shl local.get $0 @@ -8174,12 +8163,12 @@ i32.store offset=8 loop $while-continue|2 local.get $1 - local.get $6 + local.get $3 i32.le_s if block $while-break|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.const 2 i32.shl local.get $0 @@ -8190,34 +8179,34 @@ i32.const 2 global.set $~argumentsLength local.get $5 - local.get $3 + local.get $6 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 $6 + local.get $3 i32.const 2 i32.shl local.get $0 i32.add local.get $5 i32.store offset=4 - local.get $6 + local.get $3 i32.const 1 i32.sub - local.set $6 + local.set $3 br $while-continue|2 end end end - local.get $6 + local.get $3 i32.const 2 i32.shl local.get $0 i32.add - local.get $3 + local.get $6 i32.store offset=4 local.get $7 i32.const 2 @@ -8253,27 +8242,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 @@ -8287,28 +8276,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 @@ -8319,7 +8308,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 @@ -8328,7 +8317,7 @@ local.tee $8 i32.store local.get $7 - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 @@ -8353,10 +8342,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 @@ -8365,10 +8354,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 @@ -8388,11 +8377,11 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 i64) (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) + (local $12 i32) (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -8551,37 +8540,37 @@ local.tee $7 i32.const 1 i32.shl - local.set $8 + local.set $9 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 $8 + local.get $9 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $9 - local.get $7 + local.tee $11 i32.add local.set $10 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $9 + local.get $11 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 @@ -8597,38 +8586,38 @@ call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.set $11 + local.set $9 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $12 local.get $2 call $~lib/util/sort/extendRunRight local.tee $1 i32.const 1 i32.add - local.tee $5 + local.tee $4 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $12 i32.const 31 - local.get $8 + local.get $12 i32.const 31 i32.lt_s select local.tee $1 - local.get $5 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 local.get $1 - local.get $8 + local.get $12 i32.lt_s if local.get $0 @@ -8636,10 +8625,10 @@ i32.const 1 i32.add local.tee $6 - local.get $8 + local.get $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $4 local.get $6 i32.sub i32.const 1 @@ -8650,16 +8639,16 @@ if local.get $0 local.get $6 - local.get $8 + local.get $12 local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $4 + local.get $4 + local.get $12 i32.gt_s select - local.tee $5 + local.tee $4 local.get $7 local.get $2 call $~lib/util/sort/insertionSort @@ -8670,13 +8659,13 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $12 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $8 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -8684,21 +8673,21 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $8 i64.div_u i64.xor i32.wrap_i64 i32.clz local.set $7 loop $for-loop|3 - local.get $4 + local.get $5 local.get $7 i32.gt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl - local.get $9 + local.get $11 i32.add i32.load local.tee $13 @@ -8708,7 +8697,7 @@ local.get $0 local.get $13 local.get $10 - local.get $4 + local.get $5 i32.const 2 i32.shl local.tee $3 @@ -8717,53 +8706,53 @@ i32.const 1 i32.add local.get $1 - local.get $11 + local.get $9 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $11 i32.add i32.const -1 i32.store local.get $13 local.set $3 end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|3 end end - local.get $9 + local.get $11 local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.add local.get $3 i32.store - local.get $4 + local.get $5 local.get $10 i32.add local.get $1 i32.store local.get $6 local.set $3 - local.get $5 + local.get $4 local.set $1 local.get $7 - local.set $4 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl - local.get $9 + local.get $11 i32.add i32.load local.tee $1 @@ -8772,7 +8761,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 @@ -8780,22 +8769,22 @@ i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $12 + local.get $9 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end - local.get $11 - call $~lib/rt/tlsf/__free local.get $9 call $~lib/rt/tlsf/__free + local.get $11 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -9112,25 +9101,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/string/String#concat (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 - if - i32.const 32064 - i32.const 32112 - 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 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + 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/string/String#concat local.get $0 i32.const 20 i32.sub @@ -9139,7 +9128,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $2 + local.tee $3 local.get $1 i32.const 20 i32.sub @@ -9148,9 +9137,9 @@ i32.shr_u i32.const 1 i32.shl - local.tee $3 - i32.add local.tee $4 + i32.add + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -9158,30 +9147,31 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store - local.get $4 - local.get $0 local.get $2 + local.get $0 + local.get $3 call $~lib/memory/memory.copy local.get $2 - local.get $4 + local.get $3 i32.add local.get $1 - local.get $3 + 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 end + local.get $2 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -9381,32 +9371,32 @@ (local $5 i32) (local $6 i32) (local $7 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $3 + local.get $0 + i32.load offset=4 + local.set $6 + local.get $0 + i32.load offset=12 + local.set $0 + 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 + if + i32.const 32064 + i32.const 32112 + 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/string/joinIntegerArray local.get $0 - i32.load offset=12 - i32.const 0 - local.set $0 - 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 - if - i32.const 32064 - i32.const 32112 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub local.tee $7 @@ -9418,14 +9408,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end local.get $7 i32.eqz if - local.get $3 + local.get $6 i32.load call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9440,84 +9432,85 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 11 i32.add i32.mul i32.const 11 i32.add - local.tee $5 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.store loop $for-loop|0 - local.get $2 + local.get $4 local.get $7 i32.lt_s if - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $0 i32.add - local.get $2 + local.get $4 i32.const 2 i32.shl - local.get $3 + local.get $6 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.set $0 - local.get $4 + local.set $2 + local.get $5 if - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $0 i32.add local.get $1 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $4 + local.get $2 + local.get $5 i32.add - local.set $0 + local.set $2 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 $5 - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $0 i32.add local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $6 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.tee $0 - i32.gt_s + local.tee $1 + local.get $3 + i32.lt_s if - local.get $6 local.get $0 + local.get $1 call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9528,8 +9521,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 end + local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -9603,32 +9596,32 @@ (local $5 i32) (local $6 i32) (local $7 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $3 + local.get $0 + i32.load offset=4 + local.set $6 + local.get $0 + i32.load offset=12 + local.set $0 + 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 + if + i32.const 32064 + i32.const 32112 + 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/string/joinIntegerArray local.get $0 - i32.load offset=12 - i32.const 0 - local.set $0 - 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 - if - i32.const 32064 - i32.const 32112 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub local.tee $7 @@ -9640,14 +9633,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end local.get $7 i32.eqz if - local.get $3 + local.get $6 i32.load call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9662,84 +9657,85 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 10 i32.add i32.mul i32.const 10 i32.add - local.tee $5 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.store loop $for-loop|0 - local.get $2 + local.get $4 local.get $7 i32.lt_s if - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $0 i32.add - local.get $2 + local.get $4 i32.const 2 i32.shl - local.get $3 + local.get $6 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.set $0 - local.get $4 + local.set $2 + local.get $5 if - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $0 i32.add local.get $1 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $4 + local.get $2 + local.get $5 i32.add - local.set $0 + local.set $2 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 $5 - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $0 i32.add local.get $7 i32.const 2 i32.shl - local.get $3 + local.get $6 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.tee $0 - i32.gt_s + local.tee $1 + local.get $3 + i32.lt_s if - local.get $6 local.get $0 + local.get $1 call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9750,8 +9746,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 end + local.get $0 ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) (local $6 i32) @@ -9786,47 +9782,46 @@ i64.shr_u i32.wrap_i64 local.tee $3 - local.tee $6 i32.const 100000 i32.lt_u if (result i32) - local.get $6 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $6 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $6 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $6 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $6 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $6 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $6 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $6 + local.get $3 i32.const 100000000 i32.ge_u i32.add @@ -10013,7 +10008,7 @@ i32.add local.tee $0 i32.load16_u - local.set $6 + local.set $9 loop $while-continue|3 local.get $1 local.get $12 @@ -10043,10 +10038,10 @@ i32.const 0 end if - local.get $6 + local.get $9 i32.const 1 i32.sub - local.set $6 + local.set $9 local.get $1 local.get $2 i64.add @@ -10055,7 +10050,7 @@ end end local.get $0 - local.get $6 + local.get $9 i32.store16 local.get $5 return @@ -10137,7 +10132,7 @@ i32.add local.tee $0 i32.load16_u - local.set $6 + local.set $9 loop $while-continue|6 local.get $1 local.get $2 @@ -10167,10 +10162,10 @@ i32.const 0 end if - local.get $6 + local.get $9 i32.const 1 i32.sub - local.set $6 + local.set $9 local.get $1 local.get $13 i64.add @@ -10179,7 +10174,7 @@ end end local.get $0 - local.get $6 + local.get $9 i32.store16 local.get $5 end @@ -10863,36 +10858,36 @@ call $~lib/util/number/dtoa_core ) (func $~lib/array/Array#join (param $0 i32) (result i32) - (local $1 f64) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - block $folding-inner1 - block $__inlined_func$~lib/util/string/joinFloatArray (result i32) - local.get $0 - i32.load offset=4 - local.set $5 + (local $7 f64) + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + 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/util/string/joinFloatArray local.get $0 - i32.load offset=12 - i32.const 0 - local.set $0 - 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-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub - local.tee $7 + local.tee $6 i32.const 0 i32.lt_s if @@ -10901,192 +10896,194 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end - block $folding-inner0 - local.get $7 - i32.eqz - if - block $__inlined_func$~lib/util/number/dtoa (result i32) - local.get $5 - f64.load - local.set $1 + local.get $6 + i32.eqz + if + local.get $5 + f64.load + local.set $7 + 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/util/number/dtoa + local.get $7 + f64.const 0 + f64.eq + if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15652 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - f64.const 0 - f64.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11760 - br $__inlined_func$~lib/util/number/dtoa - end - local.get $1 - local.get $1 - f64.sub - f64.const 0 + i32.const 11760 + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + local.get $7 + local.get $7 + f64.sub + f64.const 0 + f64.ne + if + local.get $7 + local.get $7 f64.ne if - local.get $1 - local.get $1 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11792 - br $__inlined_func$~lib/util/number/dtoa - end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11824 - i32.const 11872 - local.get $1 - f64.const 0 - f64.lt - select + i32.const 11792 + local.set $0 br $__inlined_func$~lib/util/number/dtoa end - i32.const 11904 - local.get $1 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 11904 - 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 - local.get $2 + i32.const 11824 + i32.const 11872 + local.get $7 + f64.const 0 + f64.lt + select + local.set $0 + br $__inlined_func$~lib/util/number/dtoa end - local.set $0 - br $folding-inner0 + i32.const 11904 + local.get $7 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 11904 + 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 end global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 11724 - i32.load - i32.const 1 - i32.shr_u - local.tee $3 - i32.const 28 - i32.add - i32.mul - i32.const 28 + i32.const 4 i32.add - local.tee $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - loop $for-loop|0 - local.get $2 - local.get $7 - i32.lt_s + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 11724 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $5 + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $6 - i32.add - local.get $2 - i32.const 3 - i32.shl - local.get $5 - i32.add - f64.load - call $~lib/util/number/dtoa_buffered local.get $0 i32.add - local.set $0 - local.get $3 - if - local.get $0 - i32.const 1 - i32.shl - local.get $6 - i32.add - i32.const 11728 - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $3 - i32.add - local.set $0 - end - local.get $2 + i32.const 11728 + local.get $4 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 i32.add - local.set $2 - br $for-loop|0 + local.set $1 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $4 - local.get $0 - i32.const 1 - i32.shl - local.get $6 - i32.add - local.get $7 - i32.const 3 - i32.shl - local.get $5 - i32.add - f64.load - call $~lib/util/number/dtoa_buffered + end + local.get $2 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $5 + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $6 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end + local.get $0 return end i32.const 32064 @@ -11096,48 +11093,45 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - block $__inlined_func$~lib/util/string/joinStringArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinReferenceArray local.get $0 - i32.load offset=12 - local.set $5 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15652 - i32.lt_s - if - i32.const 32064 - i32.const 32112 - 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 - i32.const 0 - i32.store offset=8 - local.get $5 i32.const 1 i32.sub - local.tee $6 + local.tee $3 i32.const 0 i32.lt_s if @@ -11146,14 +11140,15 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - br $__inlined_func$~lib/util/string/joinStringArray + local.set $0 + br $__inlined_func$~lib/util/string/joinReferenceArray end - local.get $6 + local.get $3 i32.eqz if global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $4 + local.get $2 i32.load local.tee $1 i32.store @@ -11161,239 +11156,26 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + i32.const 13072 i32.const 9232 local.get $1 select - br $__inlined_func$~lib/util/string/joinStringArray + local.set $0 + br $__inlined_func$~lib/util/string/joinReferenceArray end + i32.const 9232 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 9232 + i32.store offset=4 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.set $4 loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - local.tee $7 - i32.store offset=4 - local.get $7 - if - local.get $7 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.get $2 - i32.add - local.set $2 - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $6 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $6 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - local.tee $7 - i32.store offset=4 - local.get $7 - if - local.get $3 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $7 - local.get $7 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $7 - i32.add - local.set $3 - end - local.get $2 - if - local.get $3 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $1 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $3 - i32.add - local.set $3 - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - if - local.get $3 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - end - ) - (func $~lib/array/Array#join (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - block $__inlined_func$~lib/util/string/joinReferenceArray (result i32) - local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15652 - i32.lt_s - if - i32.const 32064 - i32.const 32112 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9232 - br $__inlined_func$~lib/util/string/joinReferenceArray - end - local.get $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load - local.tee $1 - i32.store - local.get $0 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 13072 - i32.const 9232 - local.get $1 - select - br $__inlined_func$~lib/util/string/joinReferenceArray - end - i32.const 9232 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 9232 - i32.store offset=4 - i32.const 9516 - i32.load - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|0 - local.get $1 - local.get $3 + local.get $1 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer @@ -11447,9 +11229,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 @@ -11460,12 +11242,11 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end + local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) local.get $1 i32.extend8_s i32.const 0 @@ -11500,50 +11281,51 @@ i32.add return end + local.get $0 local.get $1 i32.extend8_s - local.tee $3 - local.tee $1 + local.tee $0 + local.get $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 @@ -11551,15 +11333,11 @@ end local.get $2 i32.add - local.set $1 - local.get $0 - local.get $3 - local.get $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 i32.const 65535 i32.and @@ -11576,62 +11354,60 @@ i32.const 1 return end + local.get $0 local.get $1 i32.const 65535 i32.and - local.tee $1 - local.tee $2 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $2 - local.get $0 - local.get $1 - local.get $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $0 ) (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -11854,33 +11630,35 @@ ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - block $folding-inner1 - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 + (local $7 i64) + block $folding-inner0 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $0 + 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/util/string/joinIntegerArray local.get $0 - i32.load offset=12 - 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-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -11889,275 +11667,276 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0 - local.get $7 - i32.eqz - if - block $__inlined_func$~lib/util/number/utoa64 (result i32) - local.get $4 - i64.load - local.set $2 + local.get $3 + i32.eqz + if + block $__inlined_func$~lib/util/number/utoa64 (result i32) + local.get $2 + i64.load + local.set $7 + 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 + local.get $7 + i64.eqz + if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + i32.const 9824 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $7 + i64.const 4294967295 + i64.le_u + if global.get $~lib/memory/__stack_pointer - i32.const 15652 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9824 - br $__inlined_func$~lib/util/number/utoa64 - end - local.get $2 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.wrap_i64 - local.tee $0 - local.tee $1 - i32.const 100000 + local.get $7 + i32.wrap_i64 + local.tee $2 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 i32.lt_u if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add end - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $0 - local.get $1 - call $~lib/util/number/utoa32_dec_lut else - global.get $~lib/memory/__stack_pointer - local.get $2 - i64.const 1000000000000000 - i64.lt_u + local.get $0 + i32.const 10000000 + i32.lt_u if (result i32) - local.get $2 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $2 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $2 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $2 - i64.const 10000000000000 - i64.ge_u - i32.add - end + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add else - local.get $2 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $2 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $2 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add end - local.tee $0 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $2 - local.get $0 - 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 $3 - end - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9516 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 20 - i32.add - i32.mul - i32.const 20 - i32.add - local.tee $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - loop $for-loop|0 - local.get $3 - local.get $7 - i32.lt_s - if - local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $6 - i32.add - local.get $3 - i32.const 3 - i32.shl - local.get $4 - i32.add - i64.load - call $~lib/util/number/itoa_buffered + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store local.get $1 - i32.add - local.set $1 + local.get $2 local.get $0 - if - local.get $1 - i32.const 1 - i32.shl - local.get $6 - i32.add - i32.const 9520 - local.get $0 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $7 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $7 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $7 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $7 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $7 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $7 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $7 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $7 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $7 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $7 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end end - local.get $3 + local.tee $0 i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $7 + local.get $0 + 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 end - local.get $5 - local.get $1 - i32.const 1 - i32.shl - local.get $6 - i32.add - local.get $7 - i32.const 3 - i32.shl - local.get $4 - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $1 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.tee $0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.tee $6 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 i32.gt_s if - local.get $6 + local.get $1 + i32.const 1 + i32.shl local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 + i32.add + local.get $5 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $6 + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 9520 + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $6 + i32.add + local.set $1 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end + end + local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end + local.get $0 return end i32.const 32064 @@ -12170,11 +11949,10 @@ (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) local.get $1 i64.const 0 i64.lt_s - local.tee $2 + local.tee $3 if local.get $0 i32.const 45 @@ -12188,7 +11966,7 @@ i64.const 10 i64.lt_u if - local.get $2 + local.get $3 i32.const 1 i32.shl local.get $0 @@ -12197,7 +11975,7 @@ i64.const 48 i64.or i64.store16 - local.get $2 + local.get $3 i32.const 1 i32.add return @@ -12208,59 +11986,58 @@ if local.get $1 i32.wrap_i64 - local.tee $3 - local.tee $4 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $4 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $4 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $4 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $4 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $4 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $4 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $4 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $4 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.get $2 + local.get $3 i32.add - 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 @@ -12315,15 +12092,353 @@ i32.add end end - local.get $2 + local.get $3 i32.add - 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) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $folding-inner0 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + local.set $0 + 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/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + block $__inlined_func$~lib/util/number/itoa64 (result i32) + local.get $5 + i64.load + i64.extend32_s + local.set $2 + 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 + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9824 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $2 + i64.sub + local.get $2 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $1 + select + local.tee $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $3 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $1 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $1 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $7 + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.const 9520 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $7 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + return + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 i32.const 255 i32.and @@ -12340,62 +12455,60 @@ i32.const 1 return end + local.get $0 local.get $1 i32.const 255 i32.and - local.tee $1 - local.tee $2 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $2 - local.get $0 - local.get $1 - local.get $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $0 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12404,32 +12517,32 @@ (local $5 i32) (local $6 i32) (local $7 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $3 + local.get $0 + i32.load offset=4 + local.set $6 + local.get $0 + i32.load offset=12 + local.set $0 + 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 + if + i32.const 32064 + i32.const 32112 + 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/string/joinIntegerArray local.get $0 - i32.load offset=12 - i32.const 0 - local.set $0 - 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 - if - i32.const 32064 - i32.const 32112 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub local.tee $7 @@ -12441,14 +12554,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end local.get $7 i32.eqz if - local.get $3 + local.get $6 i32.load8_u call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -12463,80 +12578,81 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 10 i32.add i32.mul i32.const 10 i32.add - local.tee $5 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.store loop $for-loop|0 - local.get $2 + local.get $4 local.get $7 i32.lt_s if - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $0 i32.add - local.get $2 - local.get $3 + local.get $4 + local.get $6 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.set $0 - local.get $4 + local.set $2 + local.get $5 if - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $0 i32.add local.get $1 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $4 + local.get $2 + local.get $5 i32.add - local.set $0 + local.set $2 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 $5 - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $6 + local.get $0 i32.add - local.get $3 + local.get $6 local.get $7 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.tee $0 - i32.gt_s + local.tee $1 + local.get $3 + i32.lt_s if - local.get $6 local.get $0 + local.get $1 call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -12547,8 +12663,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 end + local.get $0 ) (func $start:std/array~anonymous|53 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 @@ -13412,52 +13528,15 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array~visit (param $0 i32) + (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load offset=4 - local.tee $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $1 - local.get $3 - i32.lt_u - if - local.get $1 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - ) - (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner3 block $folding-inner2 block $folding-inner1 - block $invalid - block $std/array/ArrayStr + block $folding-inner0 + block $invalid block $std/array/Proxy block $std/array/Dim block $std/array/Ref @@ -13467,7 +13546,7 @@ i32.const 8 i32.sub i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner3 $folding-inner3 $std/array/Ref $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner1 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $std/array/Dim $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $std/array/Proxy $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner3 $folding-inner3 $std/array/ArrayStr $folding-inner2 $invalid + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner1 $std/array/Ref $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $std/array/Dim $folding-inner2 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner2 $folding-inner3 $std/array/Proxy $folding-inner2 $folding-inner3 $folding-inner2 $folding-inner3 $folding-inner2 $folding-inner3 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner3 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner3 $invalid end return end @@ -13479,18 +13558,56 @@ end return end + unreachable + end + local.get $0 + i32.load + local.tee $0 + if local.get $0 - call $~lib/array/Array~visit - return + call $byn-split-outlined-A$~lib/rt/itcms/__visit end - unreachable + return end local.get $0 - call $~lib/array/Array~visit + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end local.get $0 i32.load offset=4 + local.tee $1 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $2 + loop $while-continue|0 + local.get $1 + local.get $2 + i32.lt_u + if + local.get $1 + i32.load + local.tee $3 + if + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $0 + i32.load local.tee $0 if local.get $0 @@ -13499,7 +13616,7 @@ return end local.get $0 - i32.load + i32.load offset=4 local.tee $0 if local.get $0 @@ -13542,24 +13659,24 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=12 - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - local.get $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 i32.load offset=12 - local.set $3 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $5 loop $for-loop|0 local.get $2 - local.get $3 + local.get $5 i32.lt_s if local.get $0 @@ -13567,16 +13684,16 @@ i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $4 + local.set $3 local.get $0 local.get $2 call $~lib/array/Array#__get - local.set $5 + local.set $4 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) @@ -13721,19 +13838,19 @@ i32.shl local.get $0 i32.add - local.tee $7 - i32.load offset=4 local.tee $5 + i32.load offset=4 + local.tee $7 i32.store local.get $6 - local.get $7 + local.get $5 i32.load - local.tee $6 + local.tee $5 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) @@ -13839,229 +13956,16 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $std/array/assertStableSortedForComplexObjects - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $folding-inner0 - 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 15652 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - i64.const 0 - i64.store offset=16 - local.get $3 - global.get $std/array/inputStabArr - local.tee $4 - i32.store offset=8 - 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 - local.tee $2 - i32.const 0 - i32.store - i32.const 0 - local.get $4 - i32.load offset=12 - local.tee $5 - local.get $5 - i32.const 0 - i32.gt_s - select - local.set $6 - local.get $2 - local.get $5 - local.get $6 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $5 - i32.const 2 - i32.const 20 - i32.const 0 - call $~lib/rt/__newArray - local.tee $7 - i32.store - local.get $7 - i32.load offset=4 - local.set $2 - local.get $4 - i32.load offset=4 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.set $4 - local.get $5 - i32.const 2 - i32.shl - local.set $5 - loop $while-continue|0 - local.get $0 - local.get $5 - i32.lt_u - if - local.get $0 - local.get $2 - i32.add - local.get $0 - local.get $4 - i32.add - i32.load - local.tee $6 - i32.store - local.get $6 - if - local.get $7 - local.get $6 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - 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 $7 - i32.store - local.get $0 - i32.const 8880 - i32.store offset=4 - local.get $7 - i32.load offset=4 - local.get $7 - i32.load offset=12 - i32.const 8880 - call $~lib/util/sort/SORT - local.get $3 - local.get $7 - i32.store offset=12 - i32.const 1 - local.set $0 - global.get $~lib/memory/__stack_pointer - global.get $std/array/inputStabArr - local.tee $2 - i32.store - local.get $2 - i32.load offset=12 - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $2 - i32.lt_s - if - block $for-break0 - global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $1 - call $~lib/array/Array#__get - local.tee $3 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/array/outputStabArr - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.tee $4 - i32.store offset=20 - local.get $3 - i32.load - local.get $4 - i32.load - i32.ne - if (result i32) - i32.const 1 - else - local.get $3 - i32.load offset=4 - local.get $4 - i32.load offset=4 - i32.ne - end - if - i32.const 0 - local.set $0 - br $for-break0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1042 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 32064 - i32.const 32112 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -14069,18 +13973,17 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=12 - local.get $1 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store block $__inlined_func$std/array/isSorted<~lib/array/Array> (result i32) - local.get $2 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14088,21 +13991,23 @@ 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 $2 - local.get $0 + local.set $0 + local.get $2 i32.load offset=12 - local.set $5 + local.set $4 loop $for-loop|0 - local.get $2 - local.get $5 + local.get $0 + local.get $4 i32.lt_s if - local.get $0 local.get $2 + local.get $0 i32.const 1 i32.sub call $~lib/array/Array#__get @@ -14110,17 +14015,17 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store - local.get $0 local.get $2 + local.get $0 call $~lib/array/Array#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $3 - local.get $4 + local.get $5 local.get $1 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -14134,10 +14039,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/array/Array> end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end @@ -14226,8 +14131,11 @@ i32.const 9520 i32.store local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 i32.const 9520 - call $~lib/array/Array<~lib/string/String|null>#join + call $~lib/util/string/joinStringArray global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -14314,36 +14222,39 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.tee $3 local.tee $2 i32.const 0 i32.store local.get $2 i32.const 9520 i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> (result i32) - local.get $0 - i32.load offset=4 - local.set $3 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $0 + local.get $3 + i32.const 12 + 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 + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> local.get $0 - i32.load offset=12 - local.get $2 - i32.const 12 - 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 - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 i32.const 1 i32.sub - local.tee $4 + local.tee $3 i32.const 0 i32.lt_s if @@ -14352,13 +14263,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $4 + local.get $3 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -14369,6 +14281,7 @@ else i32.const 9232 end + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -14384,37 +14297,37 @@ i32.load i32.const 1 i32.shr_u - local.set $5 + local.set $4 loop $for-loop|0 local.get $1 - local.get $4 + local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load - local.tee $6 + local.tee $5 i32.store - local.get $6 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 call $~lib/array/Array#toString - local.set $6 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.store offset=8 local.get $0 - local.get $6 + local.get $5 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 @@ -14431,10 +14344,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load local.tee $1 @@ -14458,12 +14371,12 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 32064 @@ -14478,90 +14391,144 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) - (local $6 f32) + (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 $10 f64) + (local $11 i64) + (local $12 f32) (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 global.set $~lib/memory/__stack_pointer - block $folding-inner3 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + 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 @@ -14601,9 +14568,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 @@ -14612,16 +14579,16 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + 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 $0 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14631,76 +14598,76 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store end - local.get $0 + local.get $2 i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=4 - local.get $0 + local.get $2 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 $2 + local.tee $65 i32.store offset=4 - local.get $2 + local.get $65 i32.const 0 i32.const 1 call $~lib/memory/memory.fill - local.get $0 local.get $2 + local.get $65 i32.store - local.get $2 + local.get $65 if - local.get $0 local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link_0 + local.get $65 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 local.get $2 + local.get $65 i32.store offset=4 - local.get $0 + local.get $2 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 $0 + local.get $2 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.tee $1 - local.get $0 + local.get $2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1664 i32.store - local.get $1 + 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 @@ -14716,9 +14683,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 @@ -14729,12 +14696,12 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -14745,7 +14712,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 i32.const 0 i32.const 2147483647 @@ -14756,12 +14723,12 @@ i32.const 6 i32.const 1760 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -14772,7 +14739,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.const 0 i32.const -3 @@ -14783,12 +14750,12 @@ i32.const 6 i32.const 1792 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -14799,7 +14766,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 i32.const -2 i32.const 2147483647 @@ -14810,12 +14777,12 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -14826,7 +14793,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 i32.const 1 i32.const 0 @@ -14837,12 +14804,12 @@ i32.const 6 i32.const 1856 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -14863,39 +14830,39 @@ i32.store offset=12 local.get $1 i32.load offset=4 - local.set $2 + local.set $65 i32.const 1 local.get $1 i32.load offset=12 - local.tee $7 - local.get $7 + local.tee $66 + local.get $66 i32.const 1 i32.gt_s select - local.set $0 + local.set $2 i32.const 3 - local.get $7 - local.get $7 + local.get $66 + local.get $66 i32.const 3 i32.gt_s select - local.set $7 + local.set $66 loop $for-loop|0 - local.get $0 - local.get $7 + local.get $2 + local.get $66 i32.lt_s if - local.get $0 + local.get $2 i32.const 2 i32.shl - local.get $2 + local.get $65 i32.add i32.const 1 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 @@ -14904,12 +14871,12 @@ i32.const 7 i32.const 1936 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=8 local.get $1 - local.get $0 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -14921,33 +14888,34 @@ unreachable end local.get $1 + local.tee $2 i32.load offset=4 - local.set $2 + local.set $65 i32.const 0 - local.get $1 + local.get $2 i32.load offset=12 - local.tee $7 - local.get $7 + 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 $7 + local.get $1 + local.get $66 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + 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 @@ -14956,12 +14924,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 $1 - local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -14972,44 +14940,44 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=4 - local.set $2 + local.set $65 i32.const 0 - local.get $1 + local.get $2 i32.load offset=12 - local.tee $7 - local.get $7 + local.tee $66 + local.get $66 i32.const 0 i32.gt_s select - local.set $0 - local.get $7 + local.set $1 + local.get $66 i32.const 3 i32.sub - local.tee $7 + local.tee $66 i32.const 0 - local.get $7 + local.get $66 i32.const 0 i32.gt_s select - local.set $7 + local.set $66 loop $for-loop|03 - local.get $0 - local.get $7 + local.get $1 + local.get $66 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + 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 @@ -15018,12 +14986,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 $1 - local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15034,37 +15002,37 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=4 - local.set $2 - local.get $1 + local.set $65 + local.get $2 i32.load offset=12 - local.tee $7 + 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 $7 + local.get $1 + local.get $66 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + 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 @@ -15073,12 +15041,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 $1 - local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15089,41 +15057,41 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=4 - local.set $2 + local.set $65 i32.const 1 - local.get $1 + local.get $2 i32.load offset=12 - local.tee $7 - local.get $7 + local.tee $66 + local.get $66 i32.const 1 i32.gt_s select - local.set $0 + local.set $1 i32.const 0 - local.get $7 - local.get $7 + local.get $66 + local.get $66 i32.const 0 i32.gt_s select - local.set $7 + local.set $66 loop $for-loop|07 - local.get $0 - local.get $7 + local.get $1 + local.get $66 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + 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 @@ -15132,12 +15100,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 $1 - local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15150,9 +15118,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 @@ -15164,9 +15132,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 @@ -15180,17 +15148,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 @@ -15205,9 +15173,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 @@ -15221,9 +15189,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 @@ -15237,9 +15205,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 @@ -15253,9 +15221,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 @@ -15267,9 +15235,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 @@ -15283,17 +15251,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 @@ -15307,9 +15275,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 @@ -15323,9 +15291,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 @@ -15340,17 +15308,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 @@ -15364,9 +15332,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 @@ -15380,9 +15348,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 @@ -15397,9 +15365,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 @@ -15414,17 +15382,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 @@ -15438,9 +15406,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 @@ -15454,9 +15422,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 @@ -15471,9 +15439,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 @@ -15488,9 +15456,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 @@ -15504,40 +15472,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 $1 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load offset=4 i32.store offset=16 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $2 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 local.get $1 + local.get $2 i32.store offset=16 - local.get $1 + local.get $2 i32.const 0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $2 i32.const 0 i32.store offset=12 - local.get $1 + local.get $2 i32.load offset=12 if i32.const 0 @@ -15553,9 +15521,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 @@ -15568,7 +15536,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -15581,7 +15549,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -15594,7 +15562,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -15610,23 +15578,23 @@ 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 $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer + local.get $2 local.get $1 - local.get $0 call $~lib/array/Array#concat - local.tee $1 + local.tee $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $65 i32.store - local.get $2 + local.get $65 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15640,9 +15608,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $65 i32.store - local.get $2 + local.get $65 i32.load offset=12 i32.const 3 i32.ne @@ -15654,7 +15622,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=12 i32.const 3 i32.ne @@ -15671,19 +15639,19 @@ i32.const 3 i32.const 2272 call $~lib/rt/__newArray - local.set $2 + local.set $65 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $65 i32.store offset=8 - local.get $1 local.get $2 + local.get $65 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $65 i32.store - local.get $2 + local.get $65 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15695,7 +15663,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15708,7 +15676,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15721,7 +15689,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15734,30 +15702,30 @@ 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 $1 - global.get $std/array/arr local.tee $2 + global.get $std/array/arr + local.tee $65 i32.store - local.get $1 local.get $2 - local.get $0 + local.get $65 + local.get $1 call $~lib/array/Array#concat - local.tee $1 + local.tee $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $65 i32.store - local.get $2 + local.get $65 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15769,7 +15737,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -15781,7 +15749,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=12 i32.const 5 i32.ne @@ -15793,7 +15761,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15806,7 +15774,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15819,7 +15787,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15832,7 +15800,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -15845,7 +15813,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -15858,10 +15826,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/array/Array#pop drop - local.get $1 + local.get $2 i32.load offset=12 i32.const 4 i32.ne @@ -15879,9 +15847,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 @@ -15892,17 +15860,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $2 + global.get $std/array/arr + local.tee $65 i32.store offset=8 - local.get $1 - local.get $0 local.get $2 + local.get $1 + local.get $65 call $~lib/array/Array#concat - local.tee $1 + local.tee $2 i32.store offset=16 - local.get $1 + local.get $2 i32.load offset=12 i32.const 3 i32.ne @@ -15914,7 +15882,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -15930,28 +15898,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15969,28 +15937,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16008,28 +15976,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16047,28 +16015,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16086,28 +16054,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16125,28 +16093,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16164,28 +16132,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16203,28 +16171,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16242,28 +16210,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16281,28 +16249,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16320,28 +16288,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16359,28 +16327,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $0 local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16394,17 +16362,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 @@ -16418,9 +16386,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 @@ -16434,9 +16402,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 @@ -16451,9 +16419,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 @@ -16468,9 +16436,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 @@ -16485,9 +16453,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 @@ -16502,17 +16470,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 @@ -16526,9 +16494,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 @@ -16542,9 +16510,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 @@ -16559,9 +16527,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 @@ -16576,9 +16544,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 @@ -16593,9 +16561,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 @@ -16610,9 +16578,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 @@ -16627,11 +16595,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 $1 + local.tee $2 i32.const 0 i32.le_s if @@ -16642,29 +16610,29 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 - local.tee $2 + local.tee $65 i32.load - local.get $2 - local.get $2 + local.get $65 + local.get $65 i32.const 4 i32.add - local.get $1 + local.get $2 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 2 i32.shl - local.tee $8 + local.tee $67 call $~lib/memory/memory.copy - local.get $2 - local.get $8 + local.get $65 + local.get $67 i32.add i32.const 0 i32.store - local.get $0 local.get $1 + local.get $2 i32.store offset=12 global.set $std/array/i global.get $std/array/i @@ -16680,9 +16648,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 @@ -16696,9 +16664,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 @@ -16712,9 +16680,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 @@ -16729,9 +16697,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 @@ -16746,9 +16714,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 @@ -16763,9 +16731,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 @@ -16780,9 +16748,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 @@ -16798,9 +16766,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 @@ -16814,9 +16782,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 @@ -16830,9 +16798,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 @@ -16847,9 +16815,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 @@ -16864,9 +16832,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 @@ -16885,26 +16853,26 @@ 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 $1 + local.tee $2 i32.store offset=16 i32.const 3 i32.const 2 i32.const 3 i32.const 3536 call $~lib/rt/__newArray - local.set $2 + local.set $65 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $65 i32.store offset=8 - local.get $1 local.get $2 + local.get $65 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16917,23 +16885,23 @@ 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 $1 + local.tee $2 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3568 call $~lib/rt/__newArray - local.set $2 + local.set $65 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $65 i32.store offset=8 - local.get $1 local.get $2 + local.get $65 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16946,23 +16914,23 @@ 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 $1 + local.tee $2 i32.store offset=16 i32.const 4 i32.const 2 i32.const 3 i32.const 3600 call $~lib/rt/__newArray - local.set $2 + local.set $65 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $65 i32.store offset=8 - local.get $1 local.get $2 + local.get $65 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16975,14 +16943,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 $1 + local.tee $2 i32.store offset=16 + local.get $2 local.get $1 - local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16995,23 +16963,23 @@ 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 $1 + local.tee $2 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3648 call $~lib/rt/__newArray - local.set $2 + local.set $65 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $65 i32.store offset=8 - local.get $1 local.get $2 + local.get $65 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17024,23 +16992,23 @@ 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 $1 + local.tee $2 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3680 call $~lib/rt/__newArray - local.set $2 + local.set $65 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $65 i32.store offset=8 - local.get $1 local.get $2 + local.get $65 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17053,23 +17021,23 @@ 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 $1 + local.tee $2 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3712 call $~lib/rt/__newArray - local.set $2 + local.set $65 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $65 i32.store offset=8 - local.get $1 local.get $2 + local.get $65 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17081,15 +17049,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 $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 if i32.const 0 @@ -17099,15 +17067,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 @@ -17124,8 +17092,6 @@ local.get $1 i32.load offset=4 local.set $2 - i32.const 0 - local.set $0 local.get $1 i32.load offset=12 local.tee $1 @@ -17135,14 +17101,14 @@ local.get $1 i32.const 1 i32.shr_u - local.set $7 + local.set $65 local.get $1 i32.const 1 i32.sub local.set $1 loop $while-continue|0 local.get $0 - local.get $7 + local.get $65 i32.lt_u if local.get $0 @@ -17150,10 +17116,10 @@ i32.shl local.get $2 i32.add - local.tee $8 + local.tee $66 i32.load - local.set $9 - local.get $8 + local.set $67 + local.get $66 local.get $1 local.get $0 i32.sub @@ -17161,11 +17127,11 @@ i32.shl local.get $2 i32.add - local.tee $8 + local.tee $66 i32.load i32.store - local.get $8 - local.get $9 + local.get $66 + local.get $67 i32.store local.get $0 i32.const 1 @@ -17292,21 +17258,21 @@ local.get $1 i32.store offset=16 i32.const 0 - local.set $0 + local.set $2 local.get $1 i32.load offset=12 - local.set $2 + local.set $0 loop $for-loop|08 local.get $0 local.get $2 - i32.lt_s + i32.gt_s if local.get $1 - local.get $0 + local.get $2 call $~lib/array/Array#__get local.get $1 i32.load offset=12 - local.get $0 + local.get $2 i32.sub i32.const 1 i32.sub @@ -17319,10 +17285,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|08 end end @@ -17344,21 +17310,21 @@ local.get $1 i32.store offset=4 i32.const 0 - local.set $0 + local.set $2 local.get $1 i32.load offset=12 - local.set $2 + local.set $0 loop $for-loop|1 local.get $0 local.get $2 - i32.lt_s + i32.gt_s if local.get $1 - local.get $0 + local.get $2 call $~lib/array/Array#__get local.get $1 i32.load offset=12 - local.get $0 + local.get $2 i32.sub i32.const 1 i32.sub @@ -17371,10 +17337,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 @@ -17396,21 +17362,21 @@ local.get $1 i32.store offset=12 i32.const 0 - local.set $0 + local.set $2 local.get $1 i32.load offset=12 - local.set $2 + local.set $0 loop $for-loop|2 local.get $0 local.get $2 - i32.lt_s + i32.gt_s if local.get $1 - local.get $0 + local.get $2 call $~lib/array/Array#__get local.get $1 i32.load offset=12 - local.get $0 + local.get $2 i32.sub i32.const 1 i32.sub @@ -17423,10 +17389,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|2 end end @@ -17442,24 +17408,24 @@ i32.store local.get $1 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store offset=20 i32.const 0 - local.set $0 - local.get $1 - i32.load offset=12 local.set $2 + local.get $0 + i32.load offset=12 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - local.get $1 local.get $0 + local.get $2 call $~lib/array/Array#__get - local.get $1 - i32.load offset=12 local.get $0 + i32.load offset=12 + local.get $2 i32.sub i32.const 1 i32.sub @@ -17472,10 +17438,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|3 end end @@ -17491,24 +17457,24 @@ i32.store local.get $1 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store offset=24 i32.const 0 - local.set $0 - local.get $1 - i32.load offset=12 local.set $2 + local.get $0 + i32.load offset=12 + local.set $1 loop $for-loop|4 - local.get $0 + local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - local.get $1 local.get $0 + local.get $2 call $~lib/array/Array#__get - local.get $1 - i32.load offset=12 local.get $0 + i32.load offset=12 + local.get $2 i32.sub i32.const 1 i32.sub @@ -17521,10 +17487,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|4 end end @@ -17540,24 +17506,24 @@ i32.store local.get $1 call $~lib/array/Array#reverse - local.tee $1 + local.tee $0 i32.store offset=28 i32.const 0 - local.set $0 - local.get $1 - i32.load offset=12 local.set $2 + local.get $0 + i32.load offset=12 + local.set $1 loop $for-loop|5 - local.get $0 + local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - local.get $1 local.get $0 + local.get $2 call $~lib/array/Array#__get - local.get $1 - i32.load offset=12 local.get $0 + i32.load offset=12 + local.get $2 i32.sub i32.const 1 i32.sub @@ -17570,60 +17536,58 @@ 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|5 end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - i32.const 0 - local.set $0 i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $7 + local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|012 - local.get $0 - local.get $7 - i32.lt_s + local.set $1 + loop $while-continue|013 + local.get $2 + local.get $9 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $9 + local.tee $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 44 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|012 + local.set $9 + br $while-continue|013 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 @@ -17636,51 +17600,49 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - i32.const 0 - local.set $0 i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf39 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $7 + local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf39 - local.get $2 + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|040 - local.get $0 - local.get $7 - i32.lt_s + local.set $1 + loop $while-continue|041 + local.get $2 + local.get $8 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $8 + local.tee $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 42 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf39 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|040 + local.set $8 + br $while-continue|041 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 2 @@ -17695,51 +17657,49 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - i32.const 0 - local.set $0 i32.const -1 - local.set $1 - block $__inlined_func$~lib/array/Array#indexOf41 - local.get $2 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf42 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $7 - select - br_if $__inlined_func$~lib/array/Array#indexOf41 local.get $2 + select + br_if $__inlined_func$~lib/array/Array#indexOf42 + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|042 - local.get $0 + local.set $1 + loop $while-continue|044 + local.get $2 local.get $7 - i32.lt_s + i32.gt_s if - local.get $0 - local.tee $1 + local.get $7 + local.tee $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf41 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf42 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $7 + br $while-continue|044 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 @@ -17754,14 +17714,14 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store i32.const 100 - local.set $0 + local.set $2 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf43 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf45 + local.get $0 i32.load offset=12 local.tee $7 i32.const 100 @@ -17769,30 +17729,30 @@ i32.const 1 local.get $7 select - br_if $__inlined_func$~lib/array/Array#indexOf43 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf45 + local.get $0 i32.load offset=4 - local.set $2 - loop $while-continue|044 - local.get $0 + local.set $0 + loop $while-continue|047 + local.get $2 local.get $7 i32.lt_s if - local.get $0 + local.get $2 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf43 + br_if $__inlined_func$~lib/array/Array#indexOf45 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|044 + local.set $2 + br $while-continue|047 end end i32.const -1 @@ -17813,58 +17773,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 - block $__inlined_func$~lib/array/Array#indexOf45 - local.get $1 + local.set $2 + block $__inlined_func$~lib/array/Array#indexOf48 + local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $1 select - br_if $__inlined_func$~lib/array/Array#indexOf45 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf48 + local.get $1 i32.const 100 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.get $1 + local.set $2 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|046 - local.get $0 + local.set $0 + loop $while-continue|050 + local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $2 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#indexOf45 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf48 + local.get $2 i32.const 1 i32.add - local.set $0 - br $while-continue|046 + local.set $2 + br $while-continue|050 end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -17879,58 +17839,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 - block $__inlined_func$~lib/array/Array#indexOf47 - local.get $1 + local.set $2 + block $__inlined_func$~lib/array/Array#indexOf51 + local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const -2 i32.le_s i32.const 1 - local.get $2 + local.get $1 select - br_if $__inlined_func$~lib/array/Array#indexOf47 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf51 + local.get $1 i32.const 2 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.get $1 + local.set $2 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|048 - local.get $0 + local.set $0 + loop $while-continue|053 + local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $2 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#indexOf47 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf51 + local.get $2 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $2 + br $while-continue|053 end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 global.set $std/array/i global.get $std/array/i i32.const 3 @@ -17945,58 +17905,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 - block $__inlined_func$~lib/array/Array#indexOf49 - local.get $1 + local.set $2 + block $__inlined_func$~lib/array/Array#indexOf54 + local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const -4 i32.le_s i32.const 1 - local.get $2 + local.get $1 select - br_if $__inlined_func$~lib/array/Array#indexOf49 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf54 + local.get $1 i32.const 4 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.get $1 + local.set $2 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|050 - local.get $0 + local.set $0 + loop $while-continue|056 + local.get $1 local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $2 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#indexOf49 - local.get $0 + br_if $__inlined_func$~lib/array/Array#indexOf54 + local.get $2 i32.const 1 i32.add - local.set $0 - br $while-continue|050 + local.set $2 + br $while-continue|056 end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -18011,51 +17971,49 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - i32.const 0 - local.set $0 i32.const -1 - local.set $1 - block $__inlined_func$~lib/array/Array#indexOf51 - local.get $2 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf57 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $7 - select - br_if $__inlined_func$~lib/array/Array#indexOf51 local.get $2 + select + br_if $__inlined_func$~lib/array/Array#indexOf57 + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|052 - local.get $0 - local.get $7 - i32.lt_s + local.set $1 + loop $while-continue|059 + local.get $2 + local.get $6 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $6 + local.tee $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf51 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf57 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|052 + local.set $6 + br $while-continue|059 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 @@ -18070,45 +18028,45 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store i32.const 1 - local.set $0 + local.set $2 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf53 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf60 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $6 i32.const 1 i32.le_s i32.const 1 - local.get $7 + local.get $6 select - br_if $__inlined_func$~lib/array/Array#indexOf53 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf60 + local.get $0 i32.load offset=4 - local.set $2 - loop $while-continue|054 - local.get $0 - local.get $7 + local.set $0 + loop $while-continue|062 + local.get $2 + local.get $6 i32.lt_s if - local.get $0 + local.get $2 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf53 + br_if $__inlined_func$~lib/array/Array#indexOf60 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $2 + br $while-continue|062 end end i32.const -1 @@ -18129,45 +18087,45 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store i32.const 2 - local.set $0 + local.set $2 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf55 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf63 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $6 i32.const 2 i32.le_s i32.const 1 - local.get $7 + local.get $6 select - br_if $__inlined_func$~lib/array/Array#indexOf55 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf63 + local.get $0 i32.load offset=4 - local.set $2 - loop $while-continue|056 - local.get $0 - local.get $7 + local.set $0 + loop $while-continue|065 + local.get $2 + local.get $6 i32.lt_s if - local.get $0 + local.get $2 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf55 + br_if $__inlined_func$~lib/array/Array#indexOf63 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|056 + local.set $2 + br $while-continue|065 end end i32.const -1 @@ -18191,37 +18149,35 @@ i32.const 10 i32.const 4000 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - i32.const 0 - local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $7 + local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 - loop $while-continue|057 - local.get $0 - local.get $7 - i32.lt_s + local.set $0 + loop $while-continue|067 + local.get $2 + local.get $5 + i32.gt_s if - local.get $0 + local.get $5 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add f32.load f32.const nan:0x400000 @@ -18230,8 +18186,8 @@ local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $5 + br $while-continue|067 end end i32.const -1 @@ -18253,37 +18209,35 @@ i32.const 11 i32.const 4032 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store - i32.const 0 - local.set $0 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $0 i32.load offset=12 - local.tee $7 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $7 + local.get $2 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $0 i32.load offset=4 - local.set $2 - loop $while-continue|058 - local.get $0 - local.get $7 - i32.lt_s + local.set $0 + loop $while-continue|069 + local.get $2 + local.get $4 + i32.gt_s if - local.get $0 + local.get $4 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add f64.load f64.const nan:0x8000000000000 @@ -18292,8 +18246,8 @@ local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|058 + local.set $4 + br $while-continue|069 end end i32.const -1 @@ -18322,59 +18276,58 @@ global.set $~argumentsLength local.get $2 i32.load offset=12 - local.tee $0 - local.set $7 + local.tee $1 + local.set $4 i32.const -1 - local.set $1 + 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 $7 + local.get $1 + local.get $4 i32.add - local.get $0 + local.get $1 i32.const 1 i32.sub - local.get $7 - local.get $0 - local.get $7 + local.get $4 + local.get $1 + local.get $4 i32.le_s select - local.get $7 + local.get $4 i32.const 0 i32.lt_s select local.set $0 local.get $2 i32.load offset=4 - local.set $7 - loop $while-continue|09 + local.set $1 + loop $while-continue|01 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 i32.const 2 i32.shl - local.get $7 + local.get $1 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|09 + br $while-continue|01 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -18389,27 +18342,26 @@ global.set $~argumentsLength local.get $2 i32.load offset=12 - local.set $1 + local.tee $1 + local.set $4 i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf14 - local.get $2 - i32.load offset=12 - local.tee $7 + block $__inlined_func$~lib/array/Array#lastIndexOf6 + local.get $1 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf14 + br_if $__inlined_func$~lib/array/Array#lastIndexOf6 local.get $1 - local.get $7 + local.get $4 i32.add - local.get $7 + local.get $1 i32.const 1 i32.sub + local.get $4 local.get $1 - local.get $1 - local.get $7 - i32.ge_s + local.get $4 + i32.le_s select - local.get $1 + local.get $4 i32.const 0 i32.lt_s select @@ -18417,7 +18369,7 @@ local.get $2 i32.load offset=4 local.set $1 - loop $while-continue|015 + loop $while-continue|07 local.get $0 i32.const 0 i32.ge_s @@ -18430,12 +18382,12 @@ i32.load i32.const 7 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf14 + br_if $__inlined_func$~lib/array/Array#lastIndexOf6 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|015 + br $while-continue|07 end end i32.const -1 @@ -18453,50 +18405,51 @@ unreachable end i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf16 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf8 local.get $2 + local.tee $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf16 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf8 + local.get $2 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $2 i32.const 3 i32.le_s select - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|059 - local.get $0 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|071 + 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 $2 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf16 - local.get $0 + br_if $__inlined_func$~lib/array/Array#lastIndexOf8 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|059 + local.set $1 + br $while-continue|071 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18508,50 +18461,50 @@ unreachable end i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf60 - local.get $2 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf72 + local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf60 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf72 + local.get $2 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $2 i32.const 2 i32.le_s select - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|061 - local.get $0 + local.get $0 + i32.load offset=4 + local.set $2 + loop $while-continue|074 + 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 $2 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf60 - local.get $0 + br_if $__inlined_func$~lib/array/Array#lastIndexOf72 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|061 + local.set $1 + br $while-continue|074 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 @@ -18561,45 +18514,46 @@ unreachable end i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf62 - local.get $2 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf75 + local.get $0 + local.tee $2 i32.load offset=12 - local.tee $1 + local.tee $0 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf62 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf75 + local.get $0 i32.const 2 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|063 - local.get $0 + local.set $0 + loop $while-continue|077 + 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#lastIndexOf62 - local.get $0 + br_if $__inlined_func$~lib/array/Array#lastIndexOf75 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|063 + 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 @@ -18610,12 +18564,12 @@ end i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf64 + block $__inlined_func$~lib/array/Array#lastIndexOf78 local.get $2 i32.load offset=12 local.tee $1 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf64 + br_if $__inlined_func$~lib/array/Array#lastIndexOf78 local.get $1 i32.const 1 i32.sub @@ -18623,7 +18577,7 @@ local.get $2 i32.load offset=4 local.set $1 - loop $while-continue|065 + loop $while-continue|080 local.get $0 i32.const 0 i32.ge_s @@ -18636,12 +18590,12 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf64 + br_if $__inlined_func$~lib/array/Array#lastIndexOf78 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|065 + br $while-continue|080 end end i32.const -1 @@ -18663,29 +18617,29 @@ local.tee $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf17 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf9 local.get $2 i32.load offset=12 - local.tee $7 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $7 + local.get $4 select - br_if $__inlined_func$~lib/array/Array#indexOf17 + br_if $__inlined_func$~lib/array/Array#indexOf9 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|018 - local.get $0 - local.get $7 + loop $while-continue|010 + local.get $1 + local.get $4 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,18 +18647,18 @@ i32.load i32.const 44 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf17 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf9 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|018 + 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 @@ -18720,29 +18674,29 @@ local.tee $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf20 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf12 local.get $2 i32.load offset=12 - local.tee $7 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $7 + local.get $4 select - br_if $__inlined_func$~lib/array/Array#indexOf20 + br_if $__inlined_func$~lib/array/Array#indexOf12 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|021 - local.get $0 - local.get $7 + loop $while-continue|014 + local.get $1 + local.get $4 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,18 +18704,18 @@ i32.load i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf20 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf12 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|021 + 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 @@ -18777,29 +18731,29 @@ local.tee $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf23 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf16 local.get $2 i32.load offset=12 - local.tee $7 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $7 + local.get $4 select - br_if $__inlined_func$~lib/array/Array#indexOf23 + br_if $__inlined_func$~lib/array/Array#indexOf16 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|024 - local.get $0 - local.get $7 + loop $while-continue|017 + local.get $1 + local.get $4 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,18 +18761,18 @@ i32.load i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf23 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf16 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|024 + 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 @@ -18834,29 +18788,29 @@ local.tee $2 i32.store i32.const 100 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf26 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf19 local.get $2 i32.load offset=12 - local.tee $7 + local.tee $4 i32.const 100 i32.le_s i32.const 1 - local.get $7 + local.get $4 select - br_if $__inlined_func$~lib/array/Array#indexOf26 + br_if $__inlined_func$~lib/array/Array#indexOf19 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|027 - local.get $0 - local.get $7 + loop $while-continue|020 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -18864,18 +18818,18 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf26 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf19 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|027 + 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 @@ -18888,58 +18842,59 @@ 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 - block $__inlined_func$~lib/array/Array#indexOf29 - local.get $0 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf22 + local.get $1 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - br_if $__inlined_func$~lib/array/Array#indexOf29 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf22 + local.get $4 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 + local.set $2 + local.get $1 i32.load offset=4 - local.set $0 - loop $while-continue|030 - local.get $1 + local.set $1 + loop $while-continue|023 local.get $2 + local.get $4 i32.lt_s if - local.get $1 + local.get $2 + local.tee $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#indexOf29 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf22 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|030 + local.set $2 + 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 @@ -18952,58 +18907,59 @@ 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 - block $__inlined_func$~lib/array/Array#indexOf32 - local.get $0 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf25 + local.get $1 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const -2 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - br_if $__inlined_func$~lib/array/Array#indexOf32 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf25 + local.get $4 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 + local.set $2 + local.get $1 i32.load offset=4 - local.set $0 - loop $while-continue|033 - local.get $1 + local.set $1 + loop $while-continue|026 local.get $2 + local.get $4 i32.lt_s if - local.get $1 + local.get $2 + local.tee $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#indexOf32 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf25 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|033 + local.set $2 + 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 @@ -19016,58 +18972,59 @@ 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 - block $__inlined_func$~lib/array/Array#indexOf35 - local.get $0 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf28 + local.get $1 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const -4 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - br_if $__inlined_func$~lib/array/Array#indexOf35 - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf28 + local.get $4 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 + local.set $2 + local.get $1 i32.load offset=4 - local.set $0 - loop $while-continue|036 - local.get $1 + local.set $1 + loop $while-continue|029 local.get $2 + local.get $4 i32.lt_s if - local.get $1 + local.get $2 + local.tee $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#indexOf35 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf28 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|036 + local.set $2 + 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 @@ -19083,29 +19040,29 @@ local.tee $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf38 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf31 local.get $2 i32.load offset=12 - local.tee $7 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $7 + local.get $4 select - br_if $__inlined_func$~lib/array/Array#indexOf38 + br_if $__inlined_func$~lib/array/Array#indexOf31 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|039 - local.get $0 - local.get $7 + loop $while-continue|032 + local.get $1 + local.get $4 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,18 +19070,18 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf38 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf31 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|039 + 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 @@ -19140,29 +19097,29 @@ local.tee $2 i32.store i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf42 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf34 local.get $2 i32.load offset=12 - local.tee $7 + local.tee $4 i32.const 1 i32.le_s i32.const 1 - local.get $7 + local.get $4 select - br_if $__inlined_func$~lib/array/Array#indexOf42 + br_if $__inlined_func$~lib/array/Array#indexOf34 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|043 - local.get $0 - local.get $7 + loop $while-continue|035 + local.get $1 + local.get $4 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,18 +19127,18 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf42 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf34 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|043 + 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 @@ -19197,29 +19154,29 @@ local.tee $2 i32.store i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#indexOf46 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf37 local.get $2 i32.load offset=12 - local.tee $7 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $7 + local.get $4 select - br_if $__inlined_func$~lib/array/Array#indexOf46 + br_if $__inlined_func$~lib/array/Array#indexOf37 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|047 - local.get $0 - local.get $7 + loop $while-continue|038 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -19227,18 +19184,18 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf46 - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf37 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|047 + 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 @@ -19249,58 +19206,56 @@ call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 2 - i32.const 10 - i32.const 4112 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store block $__inlined_func$~lib/array/Array#includes (result i32) - i32.const 0 + i32.const 1 + i32.const 2 + i32.const 10 + i32.const 4112 + call $~lib/rt/__newArray local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store i32.const 0 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $1 select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|066 - local.get $0 - local.get $2 - i32.lt_s + local.set $0 + loop $while-continue|082 + local.get $1 + local.get $27 + i32.gt_s if i32.const 1 - local.get $0 + local.get $27 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add f32.load - local.tee $6 + local.tee $12 f32.const nan:0x400000 f32.eq - local.get $6 - local.get $6 + local.get $12 + local.get $12 f32.ne i32.or br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $27 i32.const 1 i32.add - local.set $0 - br $while-continue|066 + local.set $27 + br $while-continue|082 end end i32.const 0 @@ -19314,58 +19269,56 @@ call $~lib/builtins/abort unreachable end - i32.const 1 - i32.const 3 - i32.const 11 - i32.const 4144 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store block $__inlined_func$~lib/array/Array#includes (result i32) - i32.const 0 + i32.const 1 + i32.const 3 + i32.const 11 + i32.const 4144 + call $~lib/rt/__newArray local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store i32.const 0 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $1 select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|067 - local.get $0 - local.get $2 - i32.lt_s + local.set $0 + loop $while-continue|084 + local.get $1 + local.get $26 + i32.gt_s if i32.const 1 - local.get $0 + local.get $26 i32.const 3 i32.shl - local.get $1 + local.get $0 i32.add f64.load - local.tee $5 + local.tee $10 f64.const nan:0x8000000000000 f64.eq - local.get $5 - local.get $5 + local.get $10 + local.get $10 f64.ne i32.or br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $26 i32.const 1 i32.add - local.set $0 - br $while-continue|067 + local.set $26 + br $while-continue|084 end end i32.const 0 @@ -20507,7 +20460,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 i32.const 0 @@ -20515,16 +20468,16 @@ i32.const 0 local.get $1 i32.load offset=12 - local.tee $7 - local.get $7 + local.tee $4 + local.get $4 i32.const 0 i32.gt_s select - local.set $8 + local.set $5 local.get $2 i32.const 1 - local.get $7 - local.get $8 + local.get $4 + local.get $5 i32.sub local.tee $2 local.get $2 @@ -20542,44 +20495,44 @@ i32.const 12 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $6 i32.store - local.get $9 + local.get $6 i32.load offset=4 local.get $1 i32.load offset=4 - local.tee $10 - local.get $8 + local.tee $7 + local.get $5 i32.const 2 i32.shl i32.add - local.tee $11 + local.tee $8 local.get $2 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $7 + local.get $4 local.get $2 - local.get $8 + local.get $5 i32.add - local.tee $8 + local.tee $5 i32.ne if - local.get $11 local.get $8 + local.get $5 i32.const 2 i32.shl - local.get $10 - i32.add local.get $7 - local.get $8 + i32.add + local.get $4 + local.get $5 i32.sub i32.const 2 i32.shl call $~lib/memory/memory.copy end local.get $1 - local.get $7 + local.get $4 local.get $2 i32.sub i32.store offset=12 @@ -20587,9 +20540,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $6 i32.store offset=4 - local.get $9 + local.get $6 i32.load offset=12 i32.const 1 i32.ne @@ -20602,7 +20555,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $6 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -20719,50 +20672,48 @@ global.get $~lib/memory/__stack_pointer i32.const 6144 i32.store offset=8 - i32.const 0 - local.set $1 local.get $0 i32.load offset=12 - local.set $2 + local.set $1 block $__inlined_func$~lib/array/Array#findIndex - loop $for-loop|075 - local.get $2 + loop $for-loop|093 + local.get $1 local.get $0 i32.load offset=12 - local.tee $7 + local.tee $2 + local.get $1 local.get $2 - local.get $7 i32.lt_s select - local.get $1 + local.get $61 i32.gt_s if local.get $0 i32.load offset=4 - local.get $1 + local.get $61 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $61 local.get $0 i32.const 6144 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex - local.get $1 + local.get $61 i32.const 1 i32.add - local.set $1 - br $for-loop|075 + local.set $61 + br $for-loop|093 end end i32.const -1 - local.set $1 + local.set $61 end - local.get $1 + local.get $61 global.set $std/array/i global.get $std/array/i if @@ -20776,55 +20727,53 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 6176 i32.store offset=8 - i32.const 0 - local.set $1 - local.get $2 + local.get $1 i32.load offset=12 local.set $0 - block $__inlined_func$~lib/array/Array#findIndex76 - loop $for-loop|077 + 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 $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $59 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $59 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $59 local.get $1 - local.get $2 i32.const 6176 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex76 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findIndex95 + local.get $59 i32.const 1 i32.add - local.set $1 - br $for-loop|077 + local.set $59 + br $for-loop|097 end end i32.const -1 - local.set $1 + local.set $59 end - local.get $1 + local.get $59 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -20840,55 +20789,53 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 6208 i32.store offset=8 - i32.const 0 - local.set $1 - local.get $2 + local.get $1 i32.load offset=12 local.set $0 - block $__inlined_func$~lib/array/Array#findIndex78 - loop $for-loop|079 + 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 $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $58 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $58 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $58 local.get $1 - local.get $2 i32.const 6208 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex78 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findIndex99 + local.get $58 i32.const 1 i32.add - local.set $1 - br $for-loop|079 + local.set $58 + br $for-loop|0101 end end i32.const -1 - local.set $1 + local.set $58 end - local.get $1 + local.get $58 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -20904,55 +20851,53 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 6240 i32.store offset=8 - i32.const 0 - local.set $1 - local.get $2 + local.get $1 i32.load offset=12 local.set $0 - block $__inlined_func$~lib/array/Array#findIndex80 - loop $for-loop|081 + 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 $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $57 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $57 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $57 local.get $1 - local.get $2 i32.const 6240 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex80 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findIndex103 + local.get $57 i32.const 1 i32.add - local.set $1 - br $for-loop|081 + local.set $57 + br $for-loop|0105 end end i32.const -1 - local.set $1 + local.set $57 end - local.get $1 + local.get $57 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -20984,55 +20929,53 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 6272 i32.store offset=8 - i32.const 0 - local.set $1 - local.get $2 + local.get $1 i32.load offset=12 local.set $0 - block $__inlined_func$~lib/array/Array#findIndex83 - loop $for-loop|084 + 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 $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $56 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $56 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $56 local.get $1 - local.get $2 i32.const 6272 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex83 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findIndex108 + local.get $56 i32.const 1 i32.add - local.set $1 - br $for-loop|084 + local.set $56 + br $for-loop|0110 end end i32.const -1 - local.set $1 + local.set $56 end - local.get $1 + local.get $56 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21080,50 +21023,48 @@ global.get $~lib/memory/__stack_pointer i32.const 6304 i32.store offset=8 - i32.const 0 - local.set $1 local.get $0 i32.load offset=12 - local.set $2 - block $__inlined_func$~lib/array/Array#findIndex85 - loop $for-loop|086 - local.get $2 + local.set $1 + block $__inlined_func$~lib/array/Array#findIndex112 + loop $for-loop|0114 + local.get $1 local.get $0 i32.load offset=12 - local.tee $7 + local.tee $2 + local.get $1 local.get $2 - local.get $7 i32.lt_s select - local.get $1 + local.get $55 i32.gt_s if local.get $0 i32.load offset=4 - local.get $1 + local.get $55 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $55 local.get $0 i32.const 6304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex85 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findIndex112 + local.get $55 i32.const 1 i32.add - local.set $1 - br $for-loop|086 + local.set $55 + br $for-loop|0114 end end i32.const -1 - local.set $1 + local.set $55 end - local.get $1 + local.get $55 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21183,39 +21124,39 @@ 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|088 - local.get $0 + loop $for-loop|0118 + local.get $1 i32.const 0 i32.ge_s if 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 - br $for-loop|088 + 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 @@ -21233,39 +21174,39 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $0 - block $__inlined_func$~lib/array/Array#findLastIndex89 - loop $for-loop|090 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#findLastIndex120 + loop $for-loop|0122 + local.get $1 i32.const 0 i32.ge_s if 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#findLastIndex89 - local.get $0 + br_if $__inlined_func$~lib/array/Array#findLastIndex120 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|090 + 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 @@ -21285,39 +21226,39 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $0 - block $__inlined_func$~lib/array/Array#findLastIndex91 - loop $for-loop|092 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#findLastIndex124 + loop $for-loop|0126 + local.get $1 i32.const 0 i32.ge_s if 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#findLastIndex91 - local.get $0 + br_if $__inlined_func$~lib/array/Array#findLastIndex124 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|092 + 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 @@ -21337,39 +21278,39 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex93 - loop $for-loop|094 - local.get $1 + local.set $0 + block $__inlined_func$~lib/array/Array#findLastIndex128 + loop $for-loop|0130 + local.get $0 i32.const 0 i32.ge_s if 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#findLastIndex93 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findLastIndex128 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|094 + 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 @@ -21382,57 +21323,55 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr - local.tee $2 - i32.store - local.get $0 - i32.const 6512 - i32.store offset=8 block $__inlined_func$~lib/array/Array#every (result i32) - i32.const 0 - local.set $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/arr + local.tee $1 + i32.store + local.get $0 + i32.const 6512 + i32.store offset=8 + local.get $1 i32.load offset=12 local.set $0 - loop $for-loop|095 + loop $for-loop|0133 local.get $0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $54 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $54 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $1 local.get $2 + local.get $54 + local.get $1 i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $1 + local.get $54 i32.const 1 i32.add - local.set $1 - br $for-loop|095 + local.set $54 + br $for-loop|0133 end end i32.const 1 @@ -21446,57 +21385,55 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr - local.tee $2 - i32.store - local.get $0 - i32.const 6544 - i32.store offset=8 - block $__inlined_func$~lib/array/Array#every96 (result i32) - i32.const 0 - local.set $1 - local.get $2 + block $__inlined_func$~lib/array/Array#every135 (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 6544 + i32.store offset=8 + local.get $1 i32.load offset=12 local.set $0 - loop $for-loop|097 + loop $for-loop|0137 local.get $0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $53 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $53 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $1 local.get $2 + local.get $53 + local.get $1 i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every96 + br_if $__inlined_func$~lib/array/Array#every135 drop - local.get $1 + local.get $53 i32.const 1 i32.add - local.set $1 - br $for-loop|097 + local.set $53 + br $for-loop|0137 end end i32.const 1 @@ -21509,57 +21446,55 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr - local.tee $2 - i32.store - local.get $0 - i32.const 6576 - i32.store offset=8 - block $__inlined_func$~lib/array/Array#every98 (result i32) - i32.const 0 - local.set $1 - local.get $2 + block $__inlined_func$~lib/array/Array#every139 (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 6576 + i32.store offset=8 + local.get $1 i32.load offset=12 local.set $0 - loop $for-loop|099 + loop $for-loop|0141 local.get $0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $52 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $52 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $1 local.get $2 + local.get $52 + local.get $1 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every98 + br_if $__inlined_func$~lib/array/Array#every139 drop - local.get $1 + local.get $52 i32.const 1 i32.add - local.set $1 - br $for-loop|099 + local.set $52 + br $for-loop|0141 end end i32.const 1 @@ -21589,57 +21524,55 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr - local.tee $2 - i32.store - local.get $0 - i32.const 6608 - i32.store offset=8 - block $__inlined_func$~lib/array/Array#every101 (result i32) - i32.const 0 - local.set $1 - local.get $2 + block $__inlined_func$~lib/array/Array#every144 (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 6608 + i32.store offset=8 + local.get $1 i32.load offset=12 local.set $0 - loop $for-loop|0102 + loop $for-loop|0146 local.get $0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $51 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $51 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $1 local.get $2 + local.get $51 + local.get $1 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every101 + br_if $__inlined_func$~lib/array/Array#every144 drop - local.get $1 + local.get $51 i32.const 1 i32.add - local.set $1 - br $for-loop|0102 + local.set $51 + br $for-loop|0146 end end i32.const 1 @@ -21680,56 +21613,54 @@ local.get $0 call $~lib/array/Array#pop drop - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6640 - i32.store offset=8 - block $__inlined_func$~lib/array/Array#every103 (result i32) - i32.const 0 - local.set $1 + block $__inlined_func$~lib/array/Array#every148 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6640 + i32.store offset=8 local.get $0 i32.load offset=12 - local.set $2 - loop $for-loop|0104 - local.get $2 + local.set $1 + loop $for-loop|0150 + local.get $1 local.get $0 i32.load offset=12 - local.tee $7 + local.tee $2 + local.get $1 local.get $2 - local.get $7 i32.lt_s select - local.get $1 + local.get $50 i32.gt_s if local.get $0 i32.load offset=4 - local.get $1 + local.get $50 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $7 - local.get $1 + local.get $2 + local.get $50 local.get $0 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every103 + br_if $__inlined_func$~lib/array/Array#every148 drop - local.get $1 + local.get $50 i32.const 1 i32.add - local.set $1 - br $for-loop|0104 + local.set $50 + br $for-loop|0150 end end i32.const 1 @@ -21775,55 +21706,53 @@ i32.const 3 call $~lib/array/Array#push drop - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6672 - i32.store offset=8 block $__inlined_func$~lib/array/Array#some (result i32) - i32.const 0 - local.set $1 + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6672 + i32.store offset=8 local.get $0 i32.load offset=12 - local.set $2 - loop $for-loop|0106 - local.get $2 + local.set $1 + loop $for-loop|0154 + local.get $1 local.get $0 i32.load offset=12 - local.tee $7 + local.tee $2 + local.get $1 local.get $2 - local.get $7 i32.lt_s select - local.get $1 + local.get $49 i32.gt_s if local.get $0 i32.load offset=4 - local.get $1 + local.get $49 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $1 + local.get $2 + local.get $49 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 $1 + local.get $49 i32.const 1 i32.add - local.set $1 - br $for-loop|0106 + local.set $49 + br $for-loop|0154 end end i32.const 0 @@ -21837,56 +21766,54 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr - local.tee $2 - i32.store - local.get $0 - i32.const 6704 - i32.store offset=8 - block $__inlined_func$~lib/array/Array#some107 (result i32) - i32.const 0 - local.set $1 - local.get $2 + block $__inlined_func$~lib/array/Array#some156 (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 6704 + i32.store offset=8 + local.get $1 i32.load offset=12 local.set $0 - loop $for-loop|0108 + loop $for-loop|0158 local.get $0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $48 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $48 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $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#some107 + br_if $__inlined_func$~lib/array/Array#some156 drop - local.get $1 + local.get $48 i32.const 1 i32.add - local.set $1 - br $for-loop|0108 + local.set $48 + br $for-loop|0158 end end i32.const 0 @@ -21899,56 +21826,54 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr - local.tee $2 - i32.store - local.get $0 - i32.const 6736 - i32.store offset=8 - block $__inlined_func$~lib/array/Array#some109 (result i32) - i32.const 0 - local.set $1 - local.get $2 + 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|0110 + loop $for-loop|0162 local.get $0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $47 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $47 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $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#some109 + br_if $__inlined_func$~lib/array/Array#some160 drop - local.get $1 + local.get $47 i32.const 1 i32.add - local.set $1 - br $for-loop|0110 + local.set $47 + br $for-loop|0162 end end i32.const 0 @@ -21977,56 +21902,54 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr - local.tee $2 - i32.store - local.get $0 - i32.const 6768 - i32.store offset=8 - block $__inlined_func$~lib/array/Array#some112 (result i32) - i32.const 0 - local.set $1 - local.get $2 + 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|0113 + loop $for-loop|0167 local.get $0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $46 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $46 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $1 local.get $2 + local.get $46 + local.get $1 i32.const 6768 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some112 + br_if $__inlined_func$~lib/array/Array#some165 drop - local.get $1 + local.get $46 i32.const 1 i32.add - local.set $1 - br $for-loop|0113 + local.set $46 + br $for-loop|0167 end end i32.const 0 @@ -22068,55 +21991,53 @@ local.get $0 call $~lib/array/Array#pop drop - global.get $~lib/memory/__stack_pointer - global.get $std/array/arr - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 6800 - i32.store offset=8 - block $__inlined_func$~lib/array/Array#some114 (result i32) - i32.const 0 - local.set $1 + block $__inlined_func$~lib/array/Array#some169 (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6800 + i32.store offset=8 local.get $0 i32.load offset=12 - local.set $2 - loop $for-loop|0115 - local.get $2 + local.set $1 + loop $for-loop|0171 + local.get $1 local.get $0 i32.load offset=12 - local.tee $7 + local.tee $2 + local.get $1 local.get $2 - local.get $7 i32.lt_s select - local.get $1 + local.get $45 i32.gt_s if local.get $0 i32.load offset=4 - local.get $1 + local.get $45 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $7 - local.get $1 + local.get $2 + local.get $45 local.get $0 i32.const 6800 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some114 + br_if $__inlined_func$~lib/array/Array#some169 drop - local.get $1 + local.get $45 i32.const 1 i32.add - local.set $1 - br $for-loop|0115 + local.set $45 + br $for-loop|0171 end end i32.const 0 @@ -22170,42 +22091,40 @@ global.get $~lib/memory/__stack_pointer i32.const 6832 i32.store offset=8 - i32.const 0 - local.set $1 local.get $0 i32.load offset=12 - local.set $2 - loop $for-loop|0117 - local.get $2 + local.set $1 + loop $for-loop|0175 + local.get $1 local.get $0 i32.load offset=12 - local.tee $7 + local.tee $2 + local.get $1 local.get $2 - local.get $7 i32.lt_s select - local.get $1 + local.get $44 i32.gt_s if local.get $0 i32.load offset=4 - local.get $1 + local.get $44 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $44 local.get $0 i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $44 i32.const 1 i32.add - local.set $1 - br $for-loop|0117 + local.set $44 + br $for-loop|0175 end end global.get $std/array/i @@ -22224,47 +22143,45 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 6864 i32.store offset=8 - i32.const 0 - local.set $1 - local.get $2 + local.get $1 i32.load offset=12 local.set $0 - loop $for-loop|0119 + loop $for-loop|0179 local.get $0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $43 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $43 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $43 local.get $1 - local.get $2 i32.const 6864 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $43 i32.const 1 i32.add - local.set $1 - br $for-loop|0119 + local.set $43 + br $for-loop|0179 end end global.get $std/array/i @@ -22299,47 +22216,45 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 6896 i32.store offset=8 - i32.const 0 - local.set $1 - local.get $2 + local.get $1 i32.load offset=12 local.set $0 - loop $for-loop|0122 + loop $for-loop|0184 local.get $0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 local.get $0 - local.get $7 + local.get $2 i32.lt_s select - local.get $1 + local.get $42 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $42 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $42 local.get $1 - local.get $2 i32.const 6896 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $42 i32.const 1 i32.add - local.set $1 - br $for-loop|0122 + local.set $42 + br $for-loop|0184 end end global.get $std/array/i @@ -22390,42 +22305,40 @@ global.get $~lib/memory/__stack_pointer i32.const 6928 i32.store offset=8 - i32.const 0 - local.set $1 local.get $0 i32.load offset=12 - local.set $2 - loop $for-loop|0124 - local.get $2 + local.set $1 + loop $for-loop|0188 + local.get $1 local.get $0 i32.load offset=12 - local.tee $7 + local.tee $2 + local.get $1 local.get $2 - local.get $7 i32.lt_s select - local.get $1 + local.get $41 i32.gt_s if local.get $0 i32.load offset=4 - local.get $1 + local.get $41 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $41 local.get $0 i32.const 6928 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $41 i32.const 1 i32.add - local.set $1 - br $for-loop|0124 + local.set $41 + br $for-loop|0188 end end global.get $std/array/i @@ -22478,42 +22391,40 @@ global.get $~lib/memory/__stack_pointer i32.const 6960 i32.store offset=8 - i32.const 0 - local.set $1 local.get $0 i32.load offset=12 - local.set $2 - loop $for-loop|0127 - local.get $2 + local.set $1 + loop $for-loop|0193 + local.get $1 local.get $0 i32.load offset=12 - local.tee $7 + local.tee $2 + local.get $1 local.get $2 - local.get $7 i32.lt_s select - local.get $1 + local.get $40 i32.gt_s if local.get $0 i32.load offset=4 - local.get $1 + local.get $40 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $40 local.get $0 i32.const 6960 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $40 i32.const 1 i32.add - local.set $1 - br $for-loop|0127 + local.set $40 + br $for-loop|0193 end end global.get $~lib/memory/__stack_pointer @@ -22533,23 +22444,23 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 loop $for-loop|6 - local.get $0 + local.get $2 i32.const 100 i32.lt_s if 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 drop - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|6 end end @@ -22586,87 +22497,85 @@ call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer + 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 6992 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 - 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-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $2 i32.const 0 i32.store - local.get $7 - local.get $0 + local.get $2 + local.get $1 i32.load offset=12 - local.tee $7 + local.tee $2 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $4 i32.store - local.get $8 + local.get $4 i32.load offset=4 - local.set $9 - loop $for-loop|0129 - local.get $7 - local.get $0 + local.set $5 + loop $for-loop|0197 + local.get $2 + local.get $1 i32.load offset=12 - local.tee $10 - local.get $7 - local.get $10 + local.tee $6 + local.get $2 + local.get $6 i32.lt_s select - local.get $1 + local.get $39 i32.gt_s if - local.get $1 + local.get $39 i32.const 2 i32.shl - local.tee $10 - local.get $0 + local.tee $6 + local.get $1 i32.load offset=4 i32.add i32.load - local.set $11 + local.set $7 i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $10 + local.get $5 + local.get $6 i32.add - local.get $11 + local.get $7 + local.get $39 local.get $1 - local.get $0 i32.const 6992 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store - local.get $1 + local.get $39 i32.const 1 i32.add - local.set $1 - br $for-loop|0129 + local.set $39 + br $for-loop|0197 end end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.store offset=12 - local.get $8 + local.get $4 i32.load offset=12 i32.const 4 i32.ne @@ -22678,10 +22587,10 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $4 i32.const 0 call $~lib/array/Array#__get - local.set $6 + local.set $12 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 @@ -22690,7 +22599,7 @@ i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s - local.get $6 + local.get $12 f32.ne if i32.const 0 @@ -23024,56 +22933,52 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 7248 i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $0 - local.get $2 + local.get $0 i32.load offset=12 - local.set $7 - loop $for-loop|0136 - local.get $7 - local.get $2 + local.set $1 + loop $for-loop|0206 + local.get $1 + local.get $0 i32.load offset=12 - local.tee $8 - local.get $7 - local.get $8 + local.tee $2 + local.get $1 + local.get $2 i32.lt_s select - local.get $1 + local.get $38 i32.gt_s if - local.get $2 + local.get $0 i32.load offset=4 - local.get $1 + local.get $38 i32.const 2 i32.shl i32.add i32.load - local.set $8 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $8 - local.get $1 + local.get $24 local.get $2 + local.get $38 + local.get $0 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $24 + local.get $38 i32.const 1 i32.add - local.set $1 - br $for-loop|0136 + local.set $38 + br $for-loop|0206 end end - local.get $0 + local.get $24 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23089,53 +22994,51 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7280 i32.store offset=8 - i32.const 0 - local.set $1 i32.const 4 local.set $0 - local.get $2 + local.get $1 i32.load offset=12 - local.set $7 - loop $for-loop|0138 - local.get $7 + local.set $2 + loop $for-loop|0210 local.get $2 + local.get $1 i32.load offset=12 - local.tee $8 - local.get $7 - local.get $8 + local.tee $4 + local.get $2 + local.get $4 i32.lt_s select - local.get $1 + local.get $37 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $37 i32.const 2 i32.shl i32.add i32.load - local.set $8 + local.set $4 i32.const 4 global.set $~argumentsLength local.get $0 - local.get $8 + local.get $4 + local.get $37 local.get $1 - local.get $2 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $0 - local.get $1 + local.get $37 i32.const 1 i32.add - local.set $1 - br $for-loop|0138 + local.set $37 + br $for-loop|0210 end end local.get $0 @@ -23154,56 +23057,52 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7312 i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $0 - local.get $2 + local.get $1 i32.load offset=12 - local.set $7 - loop $for-loop|0140 - local.get $7 - local.get $2 + local.set $0 + loop $for-loop|0214 + local.get $0 + local.get $1 i32.load offset=12 - local.tee $8 - local.get $7 - local.get $8 + local.tee $2 + local.get $0 + local.get $2 i32.lt_s select - local.get $1 + local.get $36 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $36 i32.const 2 i32.shl i32.add i32.load - local.set $8 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $8 - local.get $1 + local.get $23 local.get $2 + local.get $36 + local.get $1 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $23 + local.get $36 i32.const 1 i32.add - local.set $1 - br $for-loop|0140 + local.set $36 + br $for-loop|0214 end end - local.get $0 + local.get $23 i32.eqz if i32.const 0 @@ -23216,56 +23115,52 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7344 i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $0 - local.get $2 + local.get $1 i32.load offset=12 - local.set $7 - loop $for-loop|0142 - local.get $7 - local.get $2 + local.set $0 + loop $for-loop|0218 + local.get $0 + local.get $1 i32.load offset=12 - local.tee $8 - local.get $7 - local.get $8 + local.tee $2 + local.get $0 + local.get $2 i32.lt_s select - local.get $1 + local.get $35 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $35 i32.const 2 i32.shl i32.add i32.load - local.set $8 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $8 - local.get $1 + local.get $22 local.get $2 + local.get $35 + local.get $1 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $22 + local.get $35 i32.const 1 i32.add - local.set $1 - br $for-loop|0142 + local.set $35 + br $for-loop|0218 end end - local.get $0 + local.get $22 if i32.const 0 i32.const 1552 @@ -23277,56 +23172,52 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7376 i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $0 - local.get $2 + local.get $1 i32.load offset=12 - local.set $7 - loop $for-loop|0144 - local.get $7 - local.get $2 + local.set $0 + loop $for-loop|0222 + local.get $0 + local.get $1 i32.load offset=12 - local.tee $8 - local.get $7 - local.get $8 + local.tee $2 + local.get $0 + local.get $2 i32.lt_s select - local.get $1 + local.get $34 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $34 i32.const 2 i32.shl i32.add i32.load - local.set $8 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $8 - local.get $1 + local.get $21 local.get $2 + local.get $34 + local.get $1 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $21 + local.get $34 i32.const 1 i32.add - local.set $1 - br $for-loop|0144 + local.set $34 + br $for-loop|0222 end end - local.get $0 + local.get $21 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23358,56 +23249,52 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7408 i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $0 - local.get $2 + local.get $1 i32.load offset=12 - local.set $7 - loop $for-loop|0147 - local.get $7 - local.get $2 + local.set $0 + loop $for-loop|0227 + local.get $0 + local.get $1 i32.load offset=12 - local.tee $8 - local.get $7 - local.get $8 + local.tee $2 + local.get $0 + local.get $2 i32.lt_s select - local.get $1 + local.get $33 i32.gt_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $33 i32.const 2 i32.shl i32.add i32.load - local.set $8 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $8 - local.get $1 + local.get $20 local.get $2 + local.get $33 + local.get $1 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $20 + local.get $33 i32.const 1 i32.add - local.set $1 - br $for-loop|0147 + local.set $33 + br $for-loop|0227 end end - local.get $0 + local.get $20 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23450,56 +23337,52 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 7440 i32.store offset=8 - i32.const 0 - local.set $1 - i32.const 0 - local.set $0 - local.get $2 + local.get $0 i32.load offset=12 - local.set $7 - loop $for-loop|0149 - local.get $7 - local.get $2 + local.set $1 + loop $for-loop|0231 + local.get $1 + local.get $0 i32.load offset=12 - local.tee $8 - local.get $7 - local.get $8 + local.tee $2 + local.get $1 + local.get $2 i32.lt_s select - local.get $1 + local.get $32 i32.gt_s if - local.get $2 + local.get $0 i32.load offset=4 - local.get $1 + local.get $32 i32.const 2 i32.shl i32.add i32.load - local.set $8 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $8 - local.get $1 + local.get $19 local.get $2 + local.get $32 + local.get $0 i32.const 7440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $19 + local.get $32 i32.const 1 i32.add - local.set $1 - br $for-loop|0149 + local.set $32 + br $for-loop|0231 end end - local.get $0 + local.get $19 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -23546,49 +23429,47 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 7472 i32.store offset=8 - i32.const 0 - local.set $0 - local.get $2 + local.get $0 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|0151 - local.get $1 + local.set $2 + loop $for-loop|0235 + local.get $2 i32.const 0 i32.ge_s if - local.get $2 + local.get $0 i32.load offset=4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $1 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $7 + local.get $18 local.get $1 local.get $2 + local.get $0 i32.const 7472 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $18 + local.get $2 i32.const 1 i32.sub - local.set $1 - br $for-loop|0151 + local.set $2 + br $for-loop|0235 end end - local.get $0 + local.get $18 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23604,49 +23485,49 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $4 i32.store local.get $0 i32.const 7504 i32.store offset=8 i32.const 4 - local.set $0 - local.get $2 + local.set $1 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|0153 - local.get $1 + local.set $2 + loop $for-loop|0239 + local.get $2 i32.const 0 i32.ge_s if - local.get $2 + local.get $4 i32.load offset=4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $7 local.get $1 + local.get $0 local.get $2 + local.get $4 i32.const 7504 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.const 1 i32.sub - local.set $1 - br $for-loop|0153 + local.set $2 + br $for-loop|0239 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23662,49 +23543,47 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7536 i32.store offset=8 - i32.const 0 - local.set $0 - local.get $2 + local.get $1 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|0155 - local.get $1 + local.set $2 + loop $for-loop|0243 + local.get $2 i32.const 0 i32.ge_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $0 i32.const 4 global.set $~argumentsLength + local.get $17 local.get $0 - local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 7536 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $17 + local.get $2 i32.const 1 i32.sub - local.set $1 - br $for-loop|0155 + local.set $2 + br $for-loop|0243 end end - local.get $0 + local.get $17 i32.eqz if i32.const 0 @@ -23717,49 +23596,47 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7568 i32.store offset=8 - i32.const 0 - local.set $0 - local.get $2 + local.get $1 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|0157 - local.get $1 + local.set $2 + loop $for-loop|0247 + local.get $2 i32.const 0 i32.ge_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $0 i32.const 4 global.set $~argumentsLength + local.get $16 local.get $0 - local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 7568 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $16 + local.get $2 i32.const 1 i32.sub - local.set $1 - br $for-loop|0157 + local.set $2 + br $for-loop|0247 end end - local.get $0 + local.get $16 if i32.const 0 i32.const 1552 @@ -23771,49 +23648,47 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7600 i32.store offset=8 - i32.const 0 - local.set $0 - local.get $2 + local.get $1 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|0159 - local.get $1 + local.set $2 + loop $for-loop|0251 + local.get $2 i32.const 0 i32.ge_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $0 i32.const 4 global.set $~argumentsLength + local.get $15 local.get $0 - local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 7600 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $15 + local.get $2 i32.const 1 i32.sub - local.set $1 - br $for-loop|0159 + local.set $2 + br $for-loop|0251 end end - local.get $0 + local.get $15 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23845,49 +23720,47 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store local.get $0 i32.const 7632 i32.store offset=8 - i32.const 0 - local.set $0 - local.get $2 + local.get $1 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|0162 - local.get $1 + local.set $2 + loop $for-loop|0256 + local.get $2 i32.const 0 i32.ge_s if - local.get $2 - i32.load offset=4 local.get $1 + i32.load offset=4 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $0 i32.const 4 global.set $~argumentsLength + local.get $14 local.get $0 - local.get $7 - local.get $1 local.get $2 + local.get $1 i32.const 7632 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $14 + local.get $2 i32.const 1 i32.sub - local.set $1 - br $for-loop|0162 + local.set $2 + br $for-loop|0256 end end - local.get $0 + local.get $14 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23930,49 +23803,47 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 7664 i32.store offset=8 - i32.const 0 - local.set $0 - local.get $2 + local.get $0 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|0164 - local.get $1 + local.set $2 + loop $for-loop|0260 + local.get $2 i32.const 0 i32.ge_s if - local.get $2 + local.get $0 i32.load offset=4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $1 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $7 + local.get $13 local.get $1 local.get $2 + local.get $0 i32.const 7664 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $13 + local.get $2 i32.const 1 i32.sub - local.set $1 - br $for-loop|0164 + local.set $2 + br $for-loop|0260 end end - local.get $0 + local.get $13 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -24031,9 +23902,58 @@ i32.const 3 call $~lib/array/Array#push drop + i64.const -7046029254386353131 call $~lib/bindings/Math/random i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom + local.tee $11 + local.get $11 + i64.eqz + select + local.tee $11 + i64.const 33 + i64.shr_u + local.get $11 + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $11 + i64.const 33 + i64.shr_u + local.get $11 + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $11 + i64.const 33 + i64.shr_u + local.get $11 + i64.xor + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + local.tee $11 + i64.const 33 + i64.shr_u + local.get $11 + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $11 + i64.const 33 + i64.shr_u + local.get $11 + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $11 + i64.const 33 + i64.shr_u + local.get $11 + i64.xor + global.set $~lib/math/random_state1_64 + i32.const 1 + global.set $~lib/math/random_seeded global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 @@ -24470,12 +24390,12 @@ i32.const 11 i32.const 8112 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=112 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 @@ -24483,78 +24403,76 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of148 - block $0of149 - block $outOfRange50 + block $1of139 + block $0of140 + block $outOfRange41 global.get $~argumentsLength - br_table $0of149 $1of148 $outOfRange50 + br_table $0of140 $1of139 $outOfRange41 end unreachable end i32.const 8208 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8208 i32.store end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 - i32.load offset=12 local.get $0 + i32.load offset=12 + 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 - i32.const 8 - i32.const 3 - i32.const 11 - i32.const 8240 - call $~lib/rt/__newArray - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 block $__inlined_func$std/array/isArraysEqual (result i32) - i32.const 0 - local.set $0 - i32.const 0 + i32.const 8 + i32.const 3 + i32.const 11 + i32.const 8240 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=8 + i32.const 0 + local.get $0 i32.load offset=12 - local.tee $7 - local.get $2 + local.tee $2 + 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 - loop $for-loop|028 - local.get $0 - local.get $7 - i32.lt_s + loop $for-loop|029 + local.get $2 + local.get $62 + i32.gt_s if - local.get $1 local.get $0 + local.get $62 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $10 + local.get $10 f64.ne if (result i32) - local.get $2 - local.get $0 + local.get $1 + local.get $62 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $10 + local.get $10 f64.ne else i32.const 0 @@ -24562,21 +24480,21 @@ i32.eqz if i32.const 0 - local.get $1 local.get $0 + local.get $62 call $~lib/array/Array#__get - local.get $2 - local.get $0 + local.get $1 + local.get $62 call $~lib/array/Array#__get f64.ne br_if $__inlined_func$std/array/isArraysEqual drop end - local.get $0 + local.get $62 i32.const 1 i32.add - local.set $0 - br $for-loop|028 + local.set $62 + br $for-loop|029 end end i32.const 1 @@ -24596,12 +24514,12 @@ i32.const 3 i32.const 8336 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=116 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 @@ -24609,29 +24527,29 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1212 - block $0of1213 - block $outOfRange214 + block $1of1309 + block $0of1310 + block $outOfRange311 global.get $~argumentsLength - br_table $0of1213 $1of1212 $outOfRange214 + br_table $0of1310 $1of1309 $outOfRange311 end unreachable end i32.const 8384 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8384 i32.store end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 - i32.load offset=12 local.get $0 + i32.load offset=12 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24642,12 +24560,12 @@ i32.const 3 i32.const 8416 call $~lib/rt/__newArray - 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 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24700,7 +24618,7 @@ i32.const 3 i32.const 8592 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=124 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -24708,7 +24626,7 @@ i32.const 3 i32.const 8624 call $~lib/rt/__newArray - local.tee $7 + local.tee $1 i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -24716,7 +24634,7 @@ i32.const 3 i32.const 8656 call $~lib/rt/__newArray - local.tee $8 + local.tee $2 i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24724,7 +24642,7 @@ i32.const 3 i32.const 8688 call $~lib/rt/__newArray - local.tee $9 + local.tee $4 i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24732,48 +24650,48 @@ i32.const 3 i32.const 8736 call $~lib/rt/__newArray - local.tee $10 + local.tee $5 i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $11 + local.tee $6 i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $12 + local.tee $7 i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $0 + local.tee $8 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $1 + local.tee $9 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray local.tee $13 i32.store offset=160 - local.get $2 + local.get $0 call $std/array/assertSortedDefault - local.get $7 + local.get $1 call $std/array/assertSortedDefault i32.const 1 i32.const 2 i32.const 3 i32.const 8816 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=8 - local.get $7 - local.get $2 + local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24785,19 +24703,19 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $2 call $std/array/assertSortedDefault i32.const 2 i32.const 2 i32.const 3 i32.const 8848 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=8 - local.get $8 local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24809,10 +24727,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 + local.get $4 call $std/array/assertSortedDefault - local.get $9 - local.get $10 + local.get $4 + local.get $5 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24824,10 +24742,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $6 call $std/array/assertSortedDefault - local.get $11 - local.get $10 + local.get $6 + local.get $5 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24839,10 +24757,10 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $7 call $std/array/assertSortedDefault - local.get $12 - local.get $10 + local.get $7 + local.get $5 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24854,10 +24772,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $8 call $std/array/assertSortedDefault - local.get $0 - local.get $10 + local.get $8 + local.get $5 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24869,10 +24787,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $9 call $std/array/assertSortedDefault - local.get $1 - local.get $10 + local.get $9 + local.get $5 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -24886,7 +24804,210 @@ end local.get $13 call $std/array/assertSortedDefault - call $std/array/assertStableSortedForComplexObjects + block $__inlined_func$std/array/assertStableSortedForComplexObjects + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=16 + local.get $1 + global.get $std/array/inputStabArr + local.tee $2 + i32.store offset=8 + local.get $1 + 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 + local.tee $0 + i32.const 0 + i32.store + i32.const 0 + local.get $2 + i32.load offset=12 + local.tee $4 + local.get $4 + i32.const 0 + i32.gt_s + select + local.set $5 + local.get $0 + local.get $4 + local.get $5 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.tee $4 + i32.const 2 + i32.const 20 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=4 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.set $2 + local.get $4 + i32.const 2 + i32.shl + local.set $4 + loop $while-continue|00 + local.get $4 + local.get $64 + i32.gt_u + if + local.get $0 + local.get $64 + i32.add + local.get $2 + local.get $64 + i32.add + i32.load + local.tee $5 + i32.store + local.get $5 + if + local.get $6 + local.get $5 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $64 + i32.const 4 + i32.add + local.set $64 + br $while-continue|00 + end + 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.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8880 + i32.store offset=4 + local.get $6 + i32.load offset=4 + local.get $6 + i32.load offset=12 + i32.const 8880 + call $~lib/util/sort/SORT + local.get $1 + local.get $6 + i32.store offset=12 + i32.const 1 + local.set $64 + global.get $~lib/memory/__stack_pointer + global.get $std/array/inputStabArr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + loop $for-loop|02 + local.get $0 + local.get $63 + i32.gt_s + if + block $for-break0 + global.get $~lib/memory/__stack_pointer + local.get $6 + local.get $63 + call $~lib/array/Array#__get + local.tee $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/outputStabArr + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $63 + call $~lib/array/Array#__get + local.tee $2 + i32.store offset=20 + local.get $1 + i32.load + local.get $2 + 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 + i32.ne + end + if + i32.const 0 + local.set $64 + br $for-break0 + end + local.get $63 + i32.const 1 + i32.add + local.set $63 + br $for-loop|02 + end + end + end + local.get $64 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1042 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$std/array/assertStableSortedForComplexObjects + end + i32.const 32064 + i32.const 32112 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray @@ -24929,7 +25050,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -24941,7 +25062,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 i64.const 0 @@ -24968,23 +25089,24 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store offset=4 - local.get $7 + local.get $4 i32.const 0 i32.const 32 call $~lib/memory/memory.fill local.get $2 - local.get $7 + local.get $4 i32.store - local.get $7 + local.get $4 if local.get $2 - local.get $7 - call $byn-split-outlined-A$~lib/rt/itcms/__link_0 + local.get $4 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $2 - local.get $7 + local.get $4 i32.store offset=4 local.get $2 i32.const 32 @@ -24999,8 +25121,8 @@ local.get $1 local.get $2 i32.store - loop $for-loop|0215 - local.get $3 + loop $for-loop|0313 + local.get $31 i32.const 2 i32.lt_s if @@ -25012,18 +25134,18 @@ local.get $1 i32.const 0 i32.const 1 - local.get $3 + local.get $31 i32.sub call $~lib/array/Array#__set local.get $2 - local.get $3 + local.get $31 local.get $1 call $~lib/array/Array<~lib/array/Array>#__set - local.get $3 + local.get $31 i32.const 1 i32.add - local.set $3 - br $for-loop|0215 + local.set $31 + br $for-loop|0313 end end global.get $~lib/memory/__stack_pointer @@ -25040,7 +25162,7 @@ call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $61 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25048,79 +25170,79 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + 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 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 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 16 i32.const 29 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 0 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.store offset=8 - local.get $3 + local.get $2 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2048 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.store offset=4 - local.get $7 + local.get $4 i32.const 0 i32.const 2048 call $~lib/memory/memory.fill - local.get $3 - local.get $7 + local.get $2 + local.get $4 i32.store - local.get $7 + local.get $4 if - local.get $3 - local.get $7 + local.get $2 + local.get $4 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 - local.get $7 + local.get $2 + local.get $4 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2048 i32.store offset=8 - local.get $3 + local.get $2 i32.const 512 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|00 - local.get $0 + loop $for-loop|039 + local.get $61 i32.const 512 i32.lt_s if @@ -25131,20 +25253,20 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + 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 4 i32.const 28 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 511 - local.get $0 + local.get $61 i32.sub i32.store global.get $~lib/memory/__stack_pointer @@ -25152,29 +25274,29 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $3 - local.get $0 local.get $2 + local.get $61 + local.get $1 call $~lib/array/Array<~lib/array/Array>#__set - local.get $0 + local.get $61 i32.const 1 i32.add - local.set $0 - br $for-loop|00 + local.set $61 + br $for-loop|039 end end 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=156 global.get $~lib/memory/__stack_pointer i32.const 9072 i32.store offset=8 - local.get $3 + local.get $2 i32.const 9072 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -25183,7 +25305,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 @@ -25191,12 +25313,12 @@ i32.const 31 i32.const 9312 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=152 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $62 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25204,22 +25326,22 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of151 - block $0of152 - block $outOfRange53 + block $1of145 + block $0of146 + block $outOfRange47 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of152 $1of151 $outOfRange53 + br_table $0of146 $1of145 $outOfRange47 end unreachable end i32.const 9360 - local.set $0 + local.set $62 global.get $~lib/memory/__stack_pointer i32.const 9360 i32.store @@ -25231,63 +25353,62 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=12 - local.get $0 - call $~lib/util/sort/SORT - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $2 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $62 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + 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 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store i32.const 1 - local.set $2 - local.get $1 + local.set $1 + local.get $0 i32.load offset=12 - local.set $7 - loop $for-loop|054 - local.get $2 - local.get $7 + local.set $4 + loop $for-loop|048 + local.get $1 + local.get $4 i32.lt_s if + local.get $0 local.get $1 - local.get $2 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store + local.get $0 local.get $1 - local.get $2 call $~lib/array/Array#__get - local.set $9 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $6 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $8 - local.get $9 - local.get $0 + local.get $5 + local.get $6 + local.get $62 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -25300,11 +25421,11 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|054 + local.set $1 + br $for-loop|048 end end global.get $~lib/memory/__stack_pointer @@ -25331,8 +25452,6 @@ i32.add global.set $~lib/memory/__stack_pointer block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25340,56 +25459,17 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner1 - block $folding-inner01 - local.get $1 - i32.load offset=12 - local.tee $2 - local.get $3 - i32.load offset=12 - i32.ne - br_if $folding-inner01 - local.get $1 - local.get $3 - i32.eq - br_if $folding-inner1 - loop $for-loop|042 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - call $~lib/array/Array#__get - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $3 - local.get $0 - call $~lib/array/Array#__get - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $7 - local.get $8 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner01 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|042 - end - end - br $folding-inner1 - end + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.load offset=12 + local.tee $1 + local.get $2 + i32.load offset=12 + i32.ne + if global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -25397,6 +25477,55 @@ i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> end + local.get $0 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> + end + loop $for-loop|045 + local.get $1 + local.get $30 + i32.gt_s + if + local.get $0 + local.get $30 + call $~lib/array/Array#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $2 + local.get $30 + call $~lib/array/Array#__get + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $4 + local.get $5 + call $~lib/string/String.__eq + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> + end + local.get $30 + i32.const 1 + i32.add + local.set $30 + br $for-loop|045 + end + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -25413,17 +25542,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - local.set $2 - local.get $0 + local.tee $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -25432,10 +25558,10 @@ i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $8 + local.tee $5 i32.store - loop $for-loop|044 - local.get $2 + loop $for-loop|049 + local.get $25 i32.const 400 i32.lt_s if @@ -25443,9 +25569,9 @@ f64.const 32 f64.mul i32.trunc_f64_s - local.set $9 + local.set $6 i32.const 0 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -25453,7 +25579,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -25466,13 +25592,13 @@ local.get $1 i32.const 9232 i32.store - loop $for-loop|04 - local.get $3 - local.get $9 + loop $for-loop|023 + local.get $2 + local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $7 i32.const 7696 i32.store offset=4 call $~lib/math/NativeMath.random @@ -25487,7 +25613,7 @@ f64.mul f64.floor i32.trunc_f64_s - local.set $11 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25495,7 +25621,9 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -25504,7 +25632,7 @@ i32.load i32.const 1 i32.shr_u - local.get $11 + local.get $8 i32.le_u if global.get $~lib/memory/__stack_pointer @@ -25512,17 +25640,17 @@ 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 $11 + local.get $0 + local.get $8 i32.const 1 i32.shl i32.const 7696 @@ -25535,19 +25663,19 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $10 local.get $0 + i32.store offset=4 + local.get $7 local.get $1 + local.get $0 call $~lib/string/String.__concat local.tee $0 i32.store - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 - br $for-loop|04 + local.set $2 + br $for-loop|023 end end global.get $~lib/memory/__stack_pointer @@ -25557,27 +25685,28 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $8 - local.get $2 + local.get $5 + local.get $25 local.get $0 call $~lib/array/Array<~lib/array/Array>#__set - local.get $2 + local.get $25 i32.const 1 i32.add - local.set $2 - br $for-loop|044 + local.set $25 + br $for-loop|049 end end 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 $5 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 @@ -25585,28 +25714,28 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of146 - block $0of147 - block $outOfRange48 + block $1of152 + block $0of153 + block $outOfRange54 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of147 $1of146 $outOfRange48 + br_table $0of153 $1of152 $outOfRange54 end 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 $8 - local.get $1 + local.get $5 + local.get $0 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25617,40 +25746,39 @@ i32.const 35 i32.const 9424 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 local.get $1 + i32.store offset=164 + global.get $~lib/memory/__stack_pointer i32.const 9520 i32.store offset=168 - local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $7 i32.const 0 local.set $0 i32.const 0 - local.set $3 + local.set $61 + local.get $1 + i32.load offset=4 + local.set $4 local.get $1 + i32.load offset=12 + local.set $1 + 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-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinBooleanArray - local.get $7 + local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $1 i32.const 0 i32.lt_s if @@ -25659,130 +25787,131 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $1 + local.set $2 br $__inlined_func$~lib/util/string/joinBooleanArray end - block $folding-inner06 - local.get $7 - i32.eqz + local.get $1 + i32.eqz + if + i32.const 9456 + i32.const 9488 + local.get $4 + i32.load8_u + select + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinBooleanArray + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 5 + i32.add + i32.mul + i32.const 5 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + loop $for-loop|149 + local.get $1 + local.get $61 + i32.gt_s if + local.get $4 + local.get $61 + i32.add + i32.load8_u + local.tee $7 + i32.eqz + i32.const 4 + i32.add + local.set $8 + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add i32.const 9456 i32.const 9488 - local.get $2 - i32.load8_u - select - local.set $1 - br $folding-inner06 - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9516 - i32.load - i32.const 1 - i32.shr_u - local.tee $8 - i32.const 5 - i32.add - i32.mul - i32.const 5 - i32.add - local.tee $9 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|18 - local.get $3 local.get $7 - i32.lt_s + select + local.get $8 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $8 + i32.add + local.set $0 + local.get $5 if - local.get $2 - local.get $3 - i32.add - i32.load8_u - local.tee $10 - i32.eqz - i32.const 4 - i32.add - local.set $11 local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - i32.const 9456 - i32.const 9488 - local.get $10 - select - local.get $11 + i32.const 9520 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $11 + local.get $5 i32.add local.set $0 - local.get $8 - if - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 9520 - local.get $8 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $8 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|18 end + local.get $61 + i32.const 1 + i32.add + local.set $61 + br $for-loop|149 end + end + local.get $1 + local.get $4 + i32.add + i32.load8_u + local.tee $1 + i32.eqz + i32.const 4 + i32.add + local.set $4 + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.const 9456 + i32.const 9488 + local.get $1 + select + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $6 + local.get $0 + local.get $4 + i32.add + local.tee $0 + i32.gt_s + if local.get $2 - local.get $7 - i32.add - i32.load8_u - local.tee $2 - i32.eqz - i32.const 4 - i32.add - local.set $3 - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 9456 - i32.const 9488 - local.get $2 - select - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $9 local.get $0 - local.get $3 - i32.add - local.tee $0 - i32.gt_s - if - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner06 - end + call $~lib/string/String#substring + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -25796,12 +25925,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $1 + local.get $2 i32.store local.get $0 i32.const 9552 i32.store offset=8 - local.get $1 + local.get $2 i32.const 9552 call $~lib/string/String.__eq i32.eqz @@ -25966,8 +26095,11 @@ i32.const 9232 i32.store offset=168 local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 i32.const 9232 - call $~lib/array/Array<~lib/string/String|null>#join + call $~lib/util/string/joinStringArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -26121,7 +26253,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 @@ -26188,7 +26320,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 @@ -26215,52 +26347,52 @@ i32.const 36 i32.const 13552 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 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-inner3 + 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 9520 i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $7 i32.const 0 local.set $0 i32.const 0 - local.set $3 + local.set $62 + local.get $1 + i32.load offset=4 + local.set $4 local.get $1 + i32.load offset=12 + local.set $1 + 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-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $7 + local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $1 i32.const 0 i32.lt_s if @@ -26269,102 +26401,103 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $1 + local.set $2 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner010 - local.get $7 - i32.eqz + local.get $1 + i32.eqz + if + local.get $4 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + loop $for-loop|050 + local.get $1 + local.get $62 + i32.gt_s if + local.get $0 + i32.const 1 + i32.shl local.get $2 + i32.add + local.get $4 + local.get $62 + i32.add i32.load8_s - call $~lib/util/number/itoa32 - local.set $1 - br $folding-inner010 - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9516 - i32.load - i32.const 1 - i32.shr_u - local.tee $8 - i32.const 11 - i32.add - i32.mul - i32.const 11 - i32.add - local.tee $9 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|012 - local.get $3 - local.get $7 - i32.lt_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $1 - i32.add local.get $2 - local.get $3 i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered + i32.const 9520 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy local.get $0 + local.get $5 i32.add local.set $0 - local.get $8 - if - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 9520 - local.get $8 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $8 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|012 end + local.get $62 + i32.const 1 + i32.add + local.set $62 + br $for-loop|050 end - local.get $9 - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if local.get $2 - local.get $7 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner010 - end + call $~lib/string/String#substring + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26381,13 +26514,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13584 i32.store offset=8 - local.get $1 + local.get $2 i32.const 13584 call $~lib/string/String.__eq i32.eqz @@ -26404,52 +26536,52 @@ i32.const 9 i32.const 13616 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 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-inner3 + 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 9520 i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $7 i32.const 0 local.set $0 i32.const 0 - local.set $3 + local.set $62 + local.get $1 + i32.load offset=4 + local.set $4 local.get $1 + i32.load offset=12 + local.set $1 + 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-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $7 + local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $1 i32.const 0 i32.lt_s if @@ -26458,106 +26590,107 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $1 + local.set $2 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner015 - local.get $7 - i32.eqz + local.get $1 + i32.eqz + if + local.get $4 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 9516 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + loop $for-loop|051 + local.get $1 + local.get $62 + i32.gt_s if + local.get $0 + i32.const 1 + i32.shl local.get $2 + i32.add + local.get $62 + i32.const 1 + i32.shl + local.get $4 + i32.add i32.load16_u - call $~lib/util/number/utoa32 - local.set $1 - br $folding-inner015 - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9516 - i32.load - i32.const 1 - i32.shr_u - local.tee $8 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $9 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|017 - local.get $3 - local.get $7 - i32.lt_s + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $3 + i32.const 9520 + local.get $5 i32.const 1 i32.shl - local.get $2 - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered + call $~lib/memory/memory.copy local.get $0 + local.get $5 i32.add local.set $0 - local.get $8 - if - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 9520 - local.get $8 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $8 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|017 end + local.get $62 + i32.const 1 + i32.add + local.set $62 + br $for-loop|051 end - local.get $9 - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - local.get $7 - i32.const 1 - i32.shl + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if local.get $2 - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner015 - end + call $~lib/string/String#substring + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -26574,13 +26707,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 13648 i32.store offset=8 - local.get $1 + local.get $2 i32.const 13648 call $~lib/string/String.__eq i32.eqz @@ -26609,7 +26741,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -26625,10 +26757,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 @@ -26660,7 +26791,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -26669,339 +26800,19 @@ i32.const 9520 i32.store local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $7 - i32.const 0 + call $~lib/array/Array#join local.set $0 - i32.const 0 - local.set $3 - local.get $1 - 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-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $7 - i32.const 1 - i32.sub - local.tee $7 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9232 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - block $folding-inner019 - local.get $7 - i32.eqz - if - local.get $2 - i64.load - i64.extend32_s - local.set $4 - 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-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa64 - local.get $4 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9824 - local.set $1 - br $__inlined_func$~lib/util/number/itoa64 - end - i64.const 0 - local.get $4 - i64.sub - local.get $4 - local.get $4 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $0 - select - local.tee $4 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.wrap_i64 - local.tee $2 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.get $0 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $2 - local.get $3 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $4 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $4 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $4 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $4 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $4 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $4 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $4 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $4 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $4 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $4 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.get $0 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $4 - local.get $2 - call $~lib/util/number/utoa64_dec_lut - end - local.get $0 - if - local.get $1 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner019 - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9516 - i32.load - i32.const 1 - i32.shr_u - local.tee $8 - i32.const 21 - i32.add - i32.mul - i32.const 21 - i32.add - local.tee $9 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|021 - local.get $3 - local.get $7 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - local.get $3 - i32.const 3 - i32.shl - local.get $2 - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $8 - if - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 9520 - local.get $8 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $8 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|021 - end - end - local.get $9 - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - local.get $7 - i32.const 3 - i32.shl - local.get $2 - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner019 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 13888 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13888 call $~lib/string/String.__eq i32.eqz @@ -27111,7 +26922,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -27119,14 +26930,14 @@ local.get $0 i32.const 9520 i32.store + i32.const 0 + local.set $62 local.get $1 i32.load offset=4 - local.set $2 + local.set $4 local.get $1 i32.load offset=12 local.set $1 - i32.const 0 - local.set $3 local.get $0 i32.const 12 i32.sub @@ -27134,7 +26945,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -27146,7 +26957,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 i32.lt_s if @@ -27155,14 +26966,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $0 + local.set $2 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.load local.tee $0 i32.store @@ -27173,7 +26984,7 @@ else i32.const 9232 end - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27181,7 +26992,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9232 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 9232 i32.store offset=4 @@ -27189,74 +27000,74 @@ i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|024 - local.get $1 - local.get $3 + local.set $1 + loop $for-loop|052 + local.get $0 + local.get $62 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $62 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load - local.tee $8 + local.tee $5 i32.store - local.get $8 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 call $~lib/array/Array#toString - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=8 - local.get $0 - local.get $8 + local.get $2 + local.get $5 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=4 end - local.get $7 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 9520 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=4 end - local.get $3 + local.get $62 i32.const 1 i32.add - local.set $3 - br $for-loop|024 + local.set $62 + br $for-loop|052 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 + local.get $2 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27269,13 +27080,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.get $2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14304 i32.store offset=8 - local.get $0 + local.get $2 i32.const 14304 call $~lib/string/String.__eq i32.eqz @@ -27326,7 +27136,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -27334,14 +27144,14 @@ local.get $0 i32.const 9520 i32.store + i32.const 0 + local.set $62 local.get $1 i32.load offset=4 - local.set $2 + local.set $4 local.get $1 i32.load offset=12 local.set $1 - i32.const 0 - local.set $3 local.get $0 i32.const 12 i32.sub @@ -27349,7 +27159,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -27361,7 +27171,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 i32.lt_s if @@ -27370,14 +27180,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $0 + local.set $2 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.load local.tee $0 i32.store @@ -27388,7 +27198,7 @@ else i32.const 9232 end - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27396,7 +27206,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9232 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 9232 i32.store offset=4 @@ -27404,74 +27214,74 @@ i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|027 - local.get $1 - local.get $3 + local.set $1 + loop $for-loop|053 + local.get $0 + local.get $62 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $62 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load - local.tee $8 + local.tee $5 i32.store - local.get $8 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 call $~lib/array/Array#toString - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=8 - local.get $0 - local.get $8 + local.get $2 + local.get $5 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=4 end - local.get $7 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 9520 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=4 end - local.get $3 + local.get $62 i32.const 1 i32.add - local.set $3 - br $for-loop|027 + local.set $62 + br $for-loop|053 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 + local.get $2 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27484,13 +27294,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.get $2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14304 i32.store offset=8 - local.get $0 + local.get $2 i32.const 14304 call $~lib/string/String.__eq i32.eqz @@ -27549,7 +27358,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -27557,14 +27366,14 @@ local.get $0 i32.const 9520 i32.store + i32.const 0 + local.set $62 local.get $1 i32.load offset=4 - local.set $2 + local.set $4 local.get $1 i32.load offset=12 local.set $1 - i32.const 0 - local.set $3 local.get $0 i32.const 12 i32.sub @@ -27572,7 +27381,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -27584,7 +27393,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 i32.lt_s if @@ -27593,14 +27402,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9232 - local.set $0 + local.set $2 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.load local.tee $0 i32.store @@ -27611,7 +27420,7 @@ else i32.const 9232 end - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -27619,7 +27428,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end i32.const 9232 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 9232 i32.store offset=4 @@ -27627,74 +27436,74 @@ i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|030 - local.get $1 - local.get $3 + local.set $1 + loop $for-loop|054 + local.get $0 + local.get $62 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $62 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load - local.tee $8 + local.tee $5 i32.store - local.get $8 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 call $~lib/array/Array<~lib/array/Array>#toString - local.set $8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.store offset=8 - local.get $0 - local.get $8 + local.get $2 + local.get $5 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=4 end - local.get $7 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 9520 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=4 end - local.get $3 + local.get $62 i32.const 1 i32.add - local.set $3 - br $for-loop|030 + local.set $62 + br $for-loop|054 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 + local.get $2 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -27707,13 +27516,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.get $2 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13008 i32.store offset=8 - local.get $0 + local.get $2 i32.const 13008 call $~lib/string/String.__eq i32.eqz @@ -27776,9 +27584,9 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $1 + local.tee $0 i32.store offset=128 - local.get $1 + local.get $0 i32.load offset=12 i32.const 10 i32.ne @@ -27791,16 +27599,16 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 loop $for-loop|7 - local.get $0 + local.get $2 i32.const 10 i32.lt_s if - local.get $1 local.get $0 + local.get $2 call $~lib/array/Array#__get - local.get $0 + local.get $2 i32.ne if i32.const 0 @@ -27810,10 +27618,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|7 end end @@ -27866,12 +27674,6 @@ local.get $1 i32.store offset=140 global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - i32.const 0 - local.set $0 - i32.const 0 - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -27879,148 +27681,148 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store local.get $1 i32.load offset=4 - local.set $8 + local.set $2 local.get $1 i32.load offset=12 local.set $1 - loop $for-loop|0217 + loop $for-loop|0317 local.get $1 - local.get $3 + local.get $60 i32.gt_s if - local.get $3 + local.get $60 i32.const 2 i32.shl - local.get $8 + local.get $2 i32.add i32.load - local.tee $9 + local.tee $4 if (result i32) - local.get $9 + local.get $4 i32.load offset=12 else i32.const 0 end - local.get $0 + local.get $29 i32.add - local.set $0 - local.get $3 + local.set $29 + local.get $60 i32.const 1 i32.add - local.set $3 - br $for-loop|0217 + local.set $60 + br $for-loop|0317 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $29 i32.const 2 i32.shl - local.tee $3 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 31 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $6 i32.store offset=4 - local.get $10 - local.get $0 + local.get $6 + local.get $29 i32.store offset=12 - local.get $10 - local.get $3 + local.get $6 + local.get $4 i32.store offset=8 - local.get $10 - local.get $9 + local.get $6 + local.get $5 i32.store offset=4 - local.get $10 - local.get $9 + local.get $6 + local.get $5 i32.store - local.get $9 + local.get $5 if - local.get $10 - local.get $9 + local.get $6 + local.get $5 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end i32.const 0 - local.set $3 - loop $for-loop|1218 + local.set $60 + loop $for-loop|1320 local.get $1 - local.get $3 + local.get $60 i32.gt_s if - local.get $3 + local.get $60 i32.const 2 i32.shl - local.get $8 + local.get $2 i32.add i32.load - local.tee $11 + local.tee $4 if - local.get $2 - local.get $9 + local.get $3 + local.get $5 i32.add - local.get $11 + local.get $4 i32.load offset=4 - local.get $11 + local.get $4 i32.load offset=12 i32.const 2 i32.shl - local.tee $11 + local.tee $4 call $~lib/memory/memory.copy - local.get $2 - local.get $11 + local.get $3 + local.get $4 i32.add - local.set $2 + local.set $3 end - local.get $3 + local.get $60 i32.const 1 i32.add - local.set $3 - br $for-loop|1218 + local.set $60 + br $for-loop|1320 end end i32.const 0 - local.set $3 - loop $for-loop|2219 - local.get $0 - local.get $3 + local.set $60 + loop $for-loop|2323 + local.get $29 + local.get $60 i32.gt_s if - local.get $3 + local.get $60 i32.const 2 i32.shl - local.get $9 + local.get $5 i32.add i32.load local.tee $1 if - local.get $9 + local.get $5 local.get $1 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $60 i32.const 1 i32.add - local.set $3 - br $for-loop|2219 + local.set $60 + br $for-loop|2323 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $6 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28028,9 +27830,9 @@ i32.const 31 i32.const 14928 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=148 - local.get $10 + local.get $6 i32.load offset=12 i32.const 8 i32.ne @@ -28043,28 +27845,28 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 loop $for-loop|8 - local.get $1 - i32.load offset=12 local.get $0 + i32.load offset=12 + local.get $2 i32.gt_s if - local.get $10 - local.get $0 + local.get $6 + local.get $2 call $~lib/array/Array#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store local.get $1 + i32.store local.get $0 + local.get $2 call $~lib/array/Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $2 + local.get $1 local.get $3 call $~lib/string/String.__eq i32.eqz @@ -28076,10 +27878,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|8 end end @@ -28167,8 +27969,6 @@ global.get $~lib/memory/__stack_pointer i32.const 15120 i32.store offset=164 - i32.const 0 - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -28176,7 +27976,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 i64.const 0 @@ -28192,63 +27992,63 @@ i32.const 26 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $3 i32.store - local.get $7 + local.get $3 i32.load offset=4 - local.set $8 - loop $for-loop|033 + local.set $4 + loop $for-loop|065 local.get $2 local.get $1 i32.load offset=12 - local.tee $9 + local.tee $5 local.get $2 - local.get $9 + local.get $5 i32.lt_s select - local.get $3 + local.get $28 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $9 - local.get $3 + local.tee $5 + local.get $28 i32.const 2 i32.shl - local.tee $10 + local.tee $6 local.get $1 i32.load offset=4 i32.add i32.load - local.tee $11 + local.tee $7 i32.store offset=4 i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $11 - local.get $3 + local.get $5 + local.get $7 + local.get $28 local.get $1 i32.const 15120 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - local.tee $9 + local.tee $5 i32.store offset=8 - local.get $8 - local.get $10 + local.get $4 + local.get $6 i32.add - local.get $9 + local.get $5 i32.store - local.get $9 + local.get $5 if - local.get $7 - local.get $9 + local.get $3 + local.get $5 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $28 i32.const 1 i32.add - local.set $3 - br $for-loop|033 + local.set $28 + br $for-loop|065 end end global.get $~lib/memory/__stack_pointer @@ -28256,9 +28056,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store - local.get $7 + local.get $3 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 i32.store offset=144 @@ -28338,12 +28138,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0224 + loop $while-continue|0330 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0224 + br $while-continue|0330 end end end @@ -28434,7 +28234,7 @@ end local.get $0 i32.load offset=4 - local.set $4 + local.set $0 loop $while-continue|0 local.get $2 local.get $3 @@ -28444,12 +28244,12 @@ local.get $2 i32.const 2 i32.shl - local.get $4 + local.get $0 i32.add i32.load - local.tee $0 + local.tee $4 i32.store - local.get $0 + local.get $4 local.get $1 call $~lib/string/String.__eq if @@ -28626,13 +28426,10 @@ local.tee $4 i32.const 0 i32.store - local.get $4 local.get $0 local.get $1 i32.shl - local.tee $4 - local.set $1 - local.get $4 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new local.set $5 @@ -28643,35 +28440,36 @@ local.get $1 call $~lib/memory/memory.copy end + local.get $4 local.get $5 i32.store i32.const 16 local.get $2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 local.get $5 i32.store local.get $5 if - local.get $1 + local.get $2 local.get $5 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $2 local.get $5 i32.store offset=4 + local.get $2 local.get $1 - local.get $4 i32.store offset=8 - local.get $1 + 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 $1 + local.get $2 ) (func $std/array/internalCapacity (param $0 i32) (result i32) (local $1 i32) @@ -28735,13 +28533,13 @@ i32.store local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select - local.tee $2 + local.tee $3 i32.add local.tee $4 i32.const 268435455 @@ -28767,7 +28565,7 @@ local.tee $5 local.get $0 i32.load offset=4 - local.get $3 + local.get $2 i32.const 2 i32.shl local.tee $0 @@ -28777,7 +28575,7 @@ i32.add local.get $1 i32.load offset=4 - local.get $2 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -28950,30 +28748,30 @@ i32.const 0 i32.gt_s select - local.tee $5 + local.tee $1 i32.const 2 i32.const 3 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 local.get $0 i32.load offset=4 - local.tee $2 + local.tee $5 local.get $4 i32.const 2 i32.shl i32.add local.tee $6 - local.get $5 + local.get $1 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 @@ -28982,7 +28780,7 @@ local.get $4 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add local.get $3 local.get $4 @@ -28993,14 +28791,14 @@ end local.get $0 local.get $3 - local.get $5 + local.get $1 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 $1 + local.get $2 ) (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -29252,24 +29050,24 @@ local.get $3 local.get $0 i32.load offset=12 - local.tee $5 + local.tee $3 i32.const 2 i32.const 3 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 $3 + local.set $4 loop $for-loop|0 - local.get $5 + local.get $3 local.get $0 i32.load offset=12 - local.tee $4 - local.get $4 + local.tee $5 + local.get $3 local.get $5 - i32.gt_s + i32.lt_s select local.get $2 i32.gt_s @@ -29277,7 +29075,7 @@ local.get $2 i32.const 2 i32.shl - local.tee $4 + local.tee $5 local.get $0 i32.load offset=4 i32.add @@ -29285,8 +29083,8 @@ local.set $6 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $4 + local.get $5 i32.add local.get $6 local.get $2 @@ -29744,50 +29542,44 @@ i32.const 0 i32.store i32.const 0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $2 - i32.const 0 - i32.gt_u - select - local.tee $3 local.get $1 i32.const 0 local.get $1 i32.const 0 i32.gt_s select + local.tee $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u local.tee $1 - local.get $2 local.get $1 local.get $2 - i32.lt_s + i32.gt_s select - local.tee $1 - local.get $1 - local.get $3 + local.tee $2 + local.get $2 + i32.const 0 i32.gt_s select i32.const 1 i32.shl - local.set $4 - local.get $3 - local.get $1 - local.get $1 - local.get $3 + local.set $3 + i32.const 0 + local.get $2 + local.get $2 + i32.const 0 i32.lt_s select i32.const 1 i32.shl - local.tee $1 - local.get $4 + local.tee $4 + local.get $3 i32.sub - local.tee $3 + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -29798,12 +29590,12 @@ return end i32.const 0 - local.get $2 + local.get $1 i32.const 1 i32.shl - local.get $1 - i32.eq local.get $4 + i32.eq + local.get $3 select if global.get $~lib/memory/__stack_pointer @@ -29814,16 +29606,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store local.get $1 local.get $0 - local.get $4 - i32.add local.get $3 + i32.add + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -29871,71 +29663,70 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 - select local.tee $0 - local.tee $1 + select + local.tee $3 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 $2 + local.get $0 i32.add - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - local.get $0 + local.get $2 local.get $3 + local.get $1 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $0 if - local.get $1 + local.get $2 i32.const 45 i32.store16 end @@ -29943,7 +29734,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/util/number/utoa32 (param $0 i32) (result i32) (local $1 i32) @@ -30040,6 +29831,214 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15652 + i32.lt_s + if + i32.const 32064 + i32.const 32112 + 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 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9232 + return + end + local.get $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.load + local.tee $0 + i32.store + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 9232 + local.get $0 + select + return + end + loop $for-loop|0 + local.get $1 + local.get $5 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $7 + i32.store offset=4 + local.get $7 + if + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $3 + i32.add + local.set $3 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $6 + i32.mul + local.get $3 + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $7 + i32.store offset=4 + local.get $7 + if + local.get $4 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $7 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $4 + local.get $7 + i32.add + local.set $4 + end + local.get $1 + if + local.get $4 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $2 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 + i32.add + local.set $4 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + if + local.get $4 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -30209,29 +30208,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 15652 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -30239,117 +30216,146 @@ global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 44 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 - i32.const 8 - 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 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 65 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 8 - local.get $1 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $4 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $4 - call $~lib/memory/memory.fill - local.get $0 - local.get $3 - i32.store - local.get $3 - if - local.get $0 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link_0 + block $__inlined_func$std/array/ArrayU32#constructor@varargs (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + 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.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 44 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 8 + 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 + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 65 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 8 + local.get $1 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + local.get $3 + call $~lib/memory/memory.fill + local.get $0 + local.get $2 + i32.store + local.get $2 + if + local.get $0 + local.get $2 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + 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 $4 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $__inlined_func$std/array/ArrayU32#constructor@varargs + end + br $folding-inner1 end - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - 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 $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 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 32064 @@ -30669,8 +30675,7 @@ select local.get $1 i32.add - local.set $1 - local.get $1 + local.tee $1 local.get $2 i32.ge_u if @@ -30896,12 +30901,12 @@ end i32.const -1 end - i32.const 0 - i32.ge_s global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + i32.ge_s ) (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -31119,11 +31124,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -31173,11 +31178,11 @@ i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $5 local.get $0 i32.load offset=4 local.get $4 @@ -31186,7 +31191,7 @@ local.tee $0 call $~lib/memory/memory.copy local.get $0 - local.get $3 + local.get $5 i32.add local.get $1 i32.load offset=4 @@ -31202,7 +31207,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 return end i32.const 32064 @@ -31378,11 +31383,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -31412,17 +31417,17 @@ i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store local.get $0 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|0 - local.get $3 + local.get $4 local.get $0 i32.load offset=12 local.tee $5 - local.get $3 + local.get $4 local.get $5 i32.lt_s select @@ -31446,7 +31451,7 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $4 + local.get $3 local.get $5 call $~lib/array/Array#push drop @@ -31466,7 +31471,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 return end i32.const 32064 @@ -31514,10 +31519,10 @@ end local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 i32.load - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 4 i32.add local.get $3 @@ -31528,7 +31533,7 @@ i32.shl local.tee $4 call $~lib/memory/memory.copy - local.get $2 + local.get $1 local.get $4 i32.add i32.const 0 @@ -31645,11 +31650,11 @@ ) (func $export:~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -31780,11 +31785,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -31861,13 +31866,13 @@ i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $5 + local.tee $2 i32.store - local.get $5 + local.get $2 i32.load offset=4 local.get $0 i32.load offset=4 - local.tee $2 + local.tee $5 local.get $4 i32.const 2 i32.shl @@ -31888,7 +31893,7 @@ local.get $4 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add local.get $3 local.get $4 @@ -31910,7 +31915,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $2 return end i32.const 32064 @@ -31961,7 +31966,7 @@ local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 loop $while-continue|0 local.get $1 local.get $3 @@ -31972,22 +31977,22 @@ i32.shl local.get $2 i32.add - local.tee $6 + local.tee $5 i32.load - local.set $4 - local.get $6 + local.set $6 local.get $5 + local.get $4 local.get $1 i32.sub i32.const 2 i32.shl local.get $2 i32.add - local.tee $6 + local.tee $5 i32.load i32.store + local.get $5 local.get $6 - local.get $4 i32.store local.get $1 i32.const 1 @@ -32037,11 +32042,11 @@ ) (func $export:~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -32154,29 +32159,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 15652 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32184,115 +32167,144 @@ 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.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 45 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 - i32.const 8 - 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 - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1056 - i32.const 1104 - i32.const 65 - i32.const 60 - call $~lib/builtins/abort - unreachable - end + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 8 - local.get $1 - i32.const 8 - i32.gt_u - select - local.tee $4 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $4 - call $~lib/memory/memory.fill local.get $0 - local.get $3 i32.store - local.get $3 - if - local.get $0 - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__link_0 + block $__inlined_func$std/array/ArrayU8#constructor@varargs (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 0 + local.set $1 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + 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.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 45 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 8 + 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 + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $1 + i32.const 1073741820 + i32.gt_u + if + i32.const 1056 + i32.const 1104 + i32.const 65 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 8 + local.get $1 + i32.const 8 + i32.gt_u + select + local.tee $3 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + local.get $3 + call $~lib/memory/memory.fill + local.get $0 + local.get $2 + i32.store + local.get $2 + if + local.get $0 + local.get $2 + i32.const 0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + 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 $4 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $__inlined_func$std/array/ArrayU8#constructor@varargs + end + br $folding-inner1 end - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - 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 $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 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 32064 @@ -32578,8 +32590,7 @@ select local.get $1 i32.add - local.set $1 - local.get $1 + local.tee $1 local.get $2 i32.ge_u if @@ -32734,12 +32745,12 @@ end i32.const -1 end - i32.const 0 - i32.ge_s global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + i32.ge_s ) (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -32957,11 +32968,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -32986,15 +32997,15 @@ i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $4 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 + local.tee $3 i32.const 1073741820 i32.gt_u if @@ -33006,26 +33017,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 0 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 i32.load offset=4 - local.tee $4 + local.tee $5 local.get $0 i32.load offset=4 - local.get $2 + local.get $4 call $~lib/memory/memory.copy - local.get $2 local.get $4 + local.get $5 i32.add local.get $1 i32.load offset=4 - local.get $3 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -33035,7 +33046,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 return end i32.const 32064 @@ -33048,6 +33059,7 @@ (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 @@ -33079,18 +33091,20 @@ 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 $5 + local.set $3 local.get $0 i32.load offset=4 - local.tee $3 + local.tee $6 local.get $1 i32.const 0 i32.lt_s @@ -33108,7 +33122,7 @@ local.get $1 local.get $4 local.get $1 - local.get $4 + local.get $5 i32.lt_s select end @@ -33136,14 +33150,14 @@ select end local.tee $2 - local.get $3 + local.get $6 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 @@ -33152,11 +33166,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 @@ -33297,11 +33311,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -33331,17 +33345,17 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store local.get $0 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|0 - local.get $3 + local.get $4 local.get $0 i32.load offset=12 local.tee $5 - local.get $3 + local.get $4 local.get $5 i32.lt_s select @@ -33363,7 +33377,7 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $4 + local.get $3 local.get $5 call $~lib/array/Array#push drop @@ -33383,7 +33397,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 return end i32.const 32064 @@ -33430,10 +33444,10 @@ end local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 i32.load8_u - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 1 i32.add local.get $3 @@ -33441,7 +33455,7 @@ i32.sub local.tee $3 call $~lib/memory/memory.copy - local.get $2 + local.get $1 local.get $3 i32.add i32.const 0 @@ -33581,11 +33595,11 @@ ) (func $export:~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -33712,11 +33726,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -33793,14 +33807,14 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $5 + local.tee $2 i32.store - local.get $5 + local.get $2 i32.load offset=4 local.get $4 local.get $0 i32.load offset=4 - local.tee $2 + local.tee $5 i32.add local.tee $6 local.get $1 @@ -33813,8 +33827,8 @@ i32.ne if local.get $6 - local.get $2 local.get $4 + local.get $5 i32.add local.get $3 local.get $4 @@ -33834,7 +33848,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $2 return end i32.const 32064 @@ -33876,11 +33890,11 @@ ) (func $export:~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -33943,11 +33957,11 @@ ) (func $export:~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -34031,11 +34045,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:std/array/ArrayStr#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -34103,11 +34117,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -34203,11 +34217,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -34301,11 +34315,11 @@ (func $export:~lib/array/Array<~lib/string/String>#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -34393,11 +34407,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -34696,11 +34710,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -34859,24 +34873,23 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + 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 8 - 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 - 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 @@ -34889,15 +34902,15 @@ i32.store local.get $0 i32.load offset=12 - local.tee $5 + local.tee $4 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select - local.tee $6 + local.tee $5 i32.add - local.tee $4 + local.tee $3 i32.const 268435455 i32.gt_u if @@ -34909,87 +34922,89 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 2 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 $4 - local.get $5 + local.set $3 + local.get $4 i32.const 2 i32.shl - local.set $5 + local.set $4 local.get $0 i32.load offset=4 local.set $0 loop $for-loop|0 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.lt_u if + local.get $2 local.get $3 - local.get $4 i32.add local.get $0 - local.get $3 + local.get $2 i32.add i32.load - local.tee $8 + local.tee $7 i32.store - local.get $8 + local.get $7 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 $3 + local.get $2 i32.const 4 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end + local.get $3 local.get $4 - local.get $5 i32.add - local.set $0 + local.set $2 local.get $1 i32.load offset=4 local.set $1 - local.get $6 + local.get $5 i32.const 2 i32.shl local.set $3 + i32.const 0 + local.set $0 loop $for-loop|1 - local.get $2 + local.get $0 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 $7 + local.get $6 local.get $4 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $0 i32.const 4 i32.add - local.set $2 + local.set $0 br $for-loop|1 end end @@ -35001,7 +35016,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 return end i32.const 32064 @@ -35015,11 +35030,11 @@ (local $1 i32) (local $2 i32) (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -35041,7 +35056,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 0 i32.le_s if @@ -35053,23 +35068,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.load offset=4 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $1 i32.store local.get $0 - local.get $2 + local.get $3 i32.store offset=12 - local.get $1 + local.get $2 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -35077,7 +35092,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 return end i32.const 32064 @@ -35091,11 +35106,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -35180,11 +35195,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -35214,17 +35229,17 @@ i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store local.get $0 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|0 - local.get $3 + local.get $4 local.get $0 i32.load offset=12 local.tee $5 - local.get $3 + local.get $4 local.get $5 i32.lt_s select @@ -35250,7 +35265,7 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $4 + local.get $3 local.get $5 call $~lib/array/Array<~lib/string/String>#push drop @@ -35270,7 +35285,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 return end i32.const 32064 @@ -35285,11 +35300,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -35325,12 +35340,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.tee $1 - i32.load local.tee $3 + i32.load + local.tee $1 i32.store - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.const 4 i32.add local.get $2 @@ -35341,7 +35356,7 @@ i32.shl local.tee $4 call $~lib/memory/memory.copy - local.get $1 + local.get $3 local.get $4 i32.add i32.const 0 @@ -35357,7 +35372,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 return end i32.const 32064 @@ -35371,11 +35386,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -35575,13 +35590,13 @@ i32.store local.get $0 i32.load offset=12 - local.set $4 + local.set $3 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 i32.const 0 @@ -35591,9 +35606,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 @@ -35604,7 +35619,7 @@ i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $3 i32.add local.tee $2 i32.const 0 @@ -35614,9 +35629,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 @@ -35633,47 +35648,49 @@ i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.load offset=4 - local.set $5 + local.set $4 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 - local.get $3 - i32.gt_u + i32.lt_u if - local.get $3 - local.get $5 + local.get $0 + local.get $4 i32.add local.get $0 - local.get $3 + local.get $5 i32.add i32.load local.tee $2 i32.store local.get $2 if - local.get $4 + local.get $3 local.get $2 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 $while-continue|0 end end @@ -35685,7 +35702,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 return end i32.const 32064 @@ -35700,11 +35717,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -35781,13 +35798,13 @@ i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $5 + local.tee $2 i32.store - local.get $5 + local.get $2 i32.load offset=4 local.get $0 i32.load offset=4 - local.tee $2 + local.tee $5 local.get $4 i32.const 2 i32.shl @@ -35808,7 +35825,7 @@ local.get $4 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add local.get $3 local.get $4 @@ -35830,7 +35847,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $2 return end i32.const 32064 @@ -35847,11 +35864,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 @@ -35888,7 +35905,7 @@ local.get $4 i32.const 1 i32.sub - local.set $4 + local.set $3 loop $while-continue|0 local.get $1 local.get $5 @@ -35900,23 +35917,23 @@ i32.shl local.get $2 i32.add - local.tee $6 + local.tee $4 i32.load - local.tee $3 + local.tee $6 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 $6 + local.tee $4 i32.load i32.store + local.get $4 local.get $6 - local.get $3 i32.store local.get $1 i32.const 1 @@ -35946,11 +35963,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#sort@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -36013,11 +36030,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#join@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + 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 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15652 i32.lt_s @@ -36055,8 +36072,11 @@ i32.store end local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 local.get $1 - call $~lib/array/Array<~lib/string/String|null>#join + call $~lib/util/string/joinStringArray global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -36173,53 +36193,4 @@ end end ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link_0 (param $0 i32) (param $1 i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1216 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) ) diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 22c90ca44a..8659d57eda 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -195,19 +195,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -819,38 +817,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1452,11 +1448,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1467,19 +1463,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1487,7 +1484,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1498,16 +1495,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -1518,16 +1515,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1535,7 +1532,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1543,8 +1540,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1561,7 +1558,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1571,13 +1568,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1590,40 +1587,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -1653,8 +1650,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2565,16 +2562,26 @@ block $folding-inner1 block $folding-inner0 block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $invalid + block $~lib/array/Array + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $~lib/array/Array $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner0 $invalid + end + return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end unreachable @@ -2885,7 +2892,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 @@ -2894,26 +2900,27 @@ 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 5 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 0 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 local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2924,7 +2931,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store i32.const 8 @@ -2934,28 +2941,28 @@ i32.const 1632 i32.const 8 call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $2 i32.store i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 local.get $2 i32.store local.get $2 if - local.get $1 + local.get $0 local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $0 local.get $2 i32.store offset=4 - local.get $1 + local.get $0 i32.const 8 i32.store offset=8 - local.get $1 + local.get $0 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2963,7 +2970,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -2974,30 +2981,30 @@ 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 9 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 2 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 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load local.tee $0 i32.store offset=16 @@ -3033,12 +3040,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 - i32.gt_u + local.get $1 + i32.lt_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 cbd3c5fff7..cf6693f344 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -2,9 +2,9 @@ (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) @@ -201,19 +201,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -825,38 +823,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1458,11 +1454,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1473,19 +1469,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1493,7 +1490,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1504,16 +1501,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -1524,16 +1521,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1541,7 +1538,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1549,8 +1546,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1567,7 +1564,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1577,13 +1574,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1596,40 +1593,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -1659,8 +1656,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2004,8 +2001,6 @@ i32.const 8 i32.shl local.get $0 - i32.const 65535 - i32.and i32.const 8 i32.shr_u i32.or @@ -2441,8 +2436,6 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2453,10 +2446,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 i64.const 0 i64.store - local.get $5 + local.get $1 i32.const 0 i32.store offset=8 memory.size @@ -2491,7 +2484,7 @@ i32.store i32.const 1456 global.set $~lib/rt/itcms/fromSpace - local.get $5 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2544,66 +2537,22 @@ i32.const 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $4 + local.get $3 i32.const 8 call $~lib/memory/memory.fill local.get $0 - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 if local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $4 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $4 + local.get $3 i32.store offset=4 local.get $0 i32.const 8 @@ -2618,7 +2567,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 local.get $0 i32.store local.get $0 @@ -4261,8 +4210,6 @@ ) (func $~lib/dataview/DataView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4286,15 +4233,15 @@ 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 i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 0 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.store offset=8 local.get $0 @@ -4317,72 +4264,28 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 local.get $0 i32.store local.get $0 if - local.get $4 - i32.eqz - if - i32.const 0 - i32.const 1232 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white + local.get $3 local.get $0 - i32.const 20 - i32.sub - local.tee $5 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $4 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $5 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $5 - call $~lib/rt/itcms/Object#makeGray - end - end - end + call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $3 local.get $0 local.get $1 i32.add 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 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) global.get $~lib/rt/itcms/white @@ -4403,4 +4306,53 @@ global.set $~lib/rt/itcms/visitCount end ) + (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1232 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 + i32.const 3 + i32.and + i32.eq + if + local.get $0 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + local.get $1 + call $~lib/rt/itcms/Object#makeGray + end + end + end + ) ) diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 0c7c84b277..fc0abbc385 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -561,19 +561,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -1185,38 +1183,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1818,11 +1814,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1833,19 +1829,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1853,7 +1850,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1864,16 +1861,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -1884,16 +1881,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1901,7 +1898,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1909,8 +1906,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1927,7 +1924,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1937,13 +1934,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1956,40 +1953,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -2019,8 +2016,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2096,45 +2093,46 @@ ) (func $~lib/date/Date#setUTCMilliseconds (param $0 i32) (param $1 i32) (local $2 i64) + (local $3 i64) local.get $0 + local.get $1 local.get $0 i64.load offset=16 + local.tee $3 + i64.const 1000 + i64.rem_s local.tee $2 - local.get $1 i64.const 1000 i64.const 0 local.get $2 - i64.const 1000 - i64.rem_s - local.tee $2 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.sub i64.extend_i32_s + local.get $3 i64.add call $~lib/date/Date#setTime ) (func $~lib/date/Date#setUTCSeconds (param $0 i32) (param $1 i32) (local $2 i64) + (local $3 i64) local.get $0 + local.get $1 local.get $0 i64.load offset=16 + local.tee $3 + i64.const 60000 + i64.rem_s local.tee $2 - local.get $1 i64.const 60000 i64.const 0 local.get $2 - i64.const 60000 - i64.rem_s - local.tee $2 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -2143,26 +2141,27 @@ i32.const 1000 i32.mul i64.extend_i32_s + local.get $3 i64.add call $~lib/date/Date#setTime ) (func $~lib/date/Date#setUTCMinutes (param $0 i32) (param $1 i32) (local $2 i64) + (local $3 i64) local.get $0 + local.get $1 local.get $0 i64.load offset=16 + local.tee $3 + i64.const 3600000 + i64.rem_s local.tee $2 - local.get $1 i64.const 3600000 i64.const 0 local.get $2 - i64.const 3600000 - i64.rem_s - local.tee $2 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -2171,26 +2170,27 @@ i32.const 60000 i32.mul i64.extend_i32_s + local.get $3 i64.add call $~lib/date/Date#setTime ) (func $~lib/date/Date#setUTCHours (param $0 i32) (param $1 i32) (local $2 i64) + (local $3 i64) local.get $0 + local.get $1 local.get $0 i64.load offset=16 + local.tee $3 + i64.const 86400000 + i64.rem_s local.tee $2 - local.get $1 i64.const 86400000 i64.const 0 local.get $2 - i64.const 86400000 - i64.rem_s - local.tee $2 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -2199,6 +2199,7 @@ i32.const 3600000 i32.mul i64.extend_i32_s + local.get $3 i64.add call $~lib/date/Date#setTime ) @@ -2473,25 +2474,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/util/number/itoa32 (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 7564 - i32.lt_s - if - i32.const 23968 - i32.const 24016 - 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 7564 + i32.lt_s + if + i32.const 23968 + i32.const 24016 + 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/itoa32 local.get $0 i32.eqz if @@ -2500,6 +2501,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1872 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -2510,63 +2512,62 @@ 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 $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 $2 + local.get $3 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store loop $while-continue|0 local.get $0 @@ -2576,20 +2577,20 @@ local.get $0 i32.const 10000 i32.rem_u - local.set $3 + local.set $4 local.get $0 i32.const 10000 i32.div_u local.set $0 - local.get $1 + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $4 + local.get $1 i32.add - local.get $3 + local.get $4 i32.const 100 i32.div_u i32.const 2 @@ -2597,7 +2598,7 @@ i32.const 1884 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -2616,13 +2617,13 @@ 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 $4 + local.get $1 i32.add local.get $0 i32.const 100 @@ -2642,12 +2643,12 @@ 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 $4 + local.get $1 i32.add local.get $0 i32.const 2 @@ -2657,21 +2658,21 @@ i32.load i32.store else - local.get $1 + local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl - local.get $4 + local.get $1 i32.add local.get $0 i32.const 48 i32.add i32.store16 end - local.get $2 + local.get $3 if - local.get $4 + local.get $1 i32.const 45 i32.store16 end @@ -2679,8 +2680,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end + local.get $1 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3559,25 +3560,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/string/String#concat (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 7564 - i32.lt_s - if - i32.const 23968 - i32.const 24016 - 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 7564 + i32.lt_s + if + i32.const 23968 + i32.const 24016 + 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/string/String#concat local.get $0 i32.const 20 i32.sub @@ -3586,7 +3587,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $2 + local.tee $3 local.get $1 i32.const 20 i32.sub @@ -3595,9 +3596,9 @@ i32.shr_u i32.const 1 i32.shl - local.tee $3 - i32.add local.tee $4 + i32.add + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3605,30 +3606,31 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store - local.get $4 - local.get $0 local.get $2 + local.get $0 + local.get $3 call $~lib/memory/memory.copy local.get $2 - local.get $4 + local.get $3 i32.add local.get $1 - local.get $3 + 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 end + 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) @@ -3829,24 +3831,21 @@ (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i32) local.get $0 - local.tee $2 i32.load offset=12 - local.tee $3 + local.tee $6 i32.const 1 i32.add local.tee $4 - local.tee $5 - local.get $2 + local.get $0 + local.tee $2 i32.load offset=8 - local.tee $6 + local.tee $8 i32.const 2 i32.shr_u i32.gt_u if - local.get $5 + local.get $4 i32.const 268435455 i32.gt_u if @@ -3857,39 +3856,38 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/rt/itcms/__renew (result i32) - local.get $6 + block $__inlined_func$~lib/rt/itcms/__renew + local.get $8 i32.const 1 i32.shl - local.tee $7 + local.tee $0 i32.const 1073741820 - local.get $7 + local.get $0 i32.const 1073741820 i32.lt_u select - local.tee $7 - local.get $5 + local.tee $0 + local.get $4 i32.const 8 - local.get $5 + local.get $4 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $5 - local.get $5 - local.get $7 - i32.lt_u + local.tee $3 + local.get $0 + local.get $3 + i32.gt_u select - local.tee $7 - local.tee $8 + local.tee $9 local.get $2 i32.load - local.tee $10 - local.tee $11 + local.tee $7 + local.tee $0 i32.const 20 i32.sub - local.tee $9 + local.tee $5 i32.load i32.const -4 i32.and @@ -3897,61 +3895,61 @@ i32.sub i32.le_u if + local.get $5 local.get $9 - local.get $8 i32.store offset=16 - local.get $11 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $8 local.get $9 + local.get $5 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $5 - local.get $11 - local.get $8 + local.tee $3 + local.get $0 local.get $9 + local.get $5 i32.load offset=16 - local.tee $9 - local.get $8 + local.tee $0 + local.get $0 local.get $9 - i32.lt_u + i32.gt_u select call $~lib/memory/memory.copy - local.get $5 + local.get $3 + local.set $0 end - local.tee $5 - local.get $6 + local.get $0 + local.get $8 i32.add - local.get $7 - local.get $6 + local.get $9 + local.get $8 i32.sub call $~lib/memory/memory.fill - local.get $5 - local.get $10 + local.get $0 + local.get $7 i32.ne if local.get $2 - local.get $5 + local.get $0 i32.store local.get $2 - local.get $5 + local.get $0 i32.store offset=4 - local.get $5 + local.get $0 if local.get $2 - local.get $5 + local.get $0 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end end local.get $2 - local.get $7 + local.get $9 i32.store offset=8 end - local.get $0 + local.get $2 i32.load offset=4 - local.get $3 + local.get $6 i32.const 2 i32.shl i32.add @@ -3964,7 +3962,7 @@ i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $0 + local.get $2 local.get $4 i32.store offset=12 ) @@ -3980,35 +3978,36 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 return end local.get $0 + local.tee $1 i32.load16_u - local.set $2 + local.set $0 loop $while-continue|0 block $__inlined_func$~lib/util/string/isSpace (result i32) - local.get $2 + local.get $0 i32.const 128 i32.or i32.const 160 i32.eq - local.get $2 + local.get $0 i32.const 9 i32.sub i32.const 4 i32.le_u i32.or - local.get $2 + local.get $0 i32.const 5760 i32.lt_u br_if $__inlined_func$~lib/util/string/isSpace drop i32.const 1 - local.get $2 + local.get $0 i32.const -8192 i32.add i32.const 10 @@ -4017,31 +4016,31 @@ drop block $break|0 block $case6|0 - local.get $2 + local.get $0 i32.const 5760 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 8232 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 8233 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 8239 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 8287 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 12288 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 65279 i32.eq br_if $case6|0 @@ -4053,33 +4052,33 @@ i32.const 0 end if - local.get $0 + local.get $1 i32.const 2 i32.add - local.tee $0 + local.tee $1 i32.load16_u - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.const 1 i32.sub - local.set $1 + local.set $2 br $while-continue|0 end end i32.const 1 - local.set $3 - local.get $2 + local.set $5 + local.get $0 i32.const 43 i32.eq - local.get $2 + local.get $0 i32.const 45 i32.eq i32.or if (result i32) - local.get $1 + local.get $2 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -4087,22 +4086,22 @@ end i32.const -1 i32.const 1 - local.get $2 + local.get $0 i32.const 45 i32.eq select - local.set $3 - local.get $0 + local.set $5 + local.get $1 i32.const 2 i32.add - local.tee $0 + local.tee $1 i32.load16_u else - local.get $2 + local.get $0 end i32.const 48 i32.eq - local.get $1 + local.get $2 i32.const 2 i32.gt_s i32.and @@ -4110,101 +4109,101 @@ block $break|1 block $case2|1 block $case1|1 - local.get $0 + local.get $1 i32.load16_u offset=2 i32.const 32 i32.or - local.tee $2 + local.tee $0 i32.const 98 i32.ne if - local.get $2 + local.get $0 i32.const 111 i32.eq br_if $case1|1 - local.get $2 + local.get $0 i32.const 120 i32.eq br_if $case2|1 br $break|1 end - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.const 2 i32.sub - local.set $1 + local.set $2 i32.const 2 - local.set $4 + local.set $3 br $break|1 end - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.const 2 i32.sub - local.set $1 + local.set $2 i32.const 8 - local.set $4 + local.set $3 br $break|1 end - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.const 2 i32.sub - local.set $1 + local.set $2 i32.const 16 - local.set $4 + local.set $3 end end - local.get $4 + local.get $3 i32.const 10 - local.get $4 + local.get $3 select - local.set $4 + local.set $3 loop $while-continue|2 block $while-break|2 - local.get $1 - local.tee $2 + local.get $2 + local.tee $0 i32.const 1 i32.sub - local.set $1 - local.get $2 + local.set $2 + local.get $0 if - local.get $0 + local.get $1 i32.load16_u - local.tee $2 + local.tee $0 i32.const 48 i32.sub i32.const 10 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 48 i32.sub else - local.get $2 + local.get $0 i32.const 65 i32.sub i32.const 25 i32.le_u if (result i32) - local.get $2 + local.get $0 i32.const 55 i32.sub else - local.get $2 + local.get $0 i32.const 87 i32.sub - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.const 97 i32.sub i32.const 25 @@ -4212,11 +4211,11 @@ select end end - local.tee $2 - local.get $4 + local.tee $0 + local.get $3 i32.ge_u if - local.get $5 + local.get $4 i32.eqz if i32.const 0 @@ -4224,21 +4223,21 @@ end br $while-break|2 end - local.get $2 + local.get $0 + local.get $3 local.get $4 - local.get $5 i32.mul i32.add - local.set $5 - local.get $0 + local.set $4 + local.get $1 i32.const 2 i32.add - local.set $0 + local.set $1 br $while-continue|2 end end end - local.get $3 + local.get $4 local.get $5 i32.mul ) @@ -4251,16 +4250,26 @@ block $~lib/array/Array<~lib/string/String> block $~lib/staticarray/StaticArray<~lib/string/String> block $~lib/date/Date - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $~lib/date/Date $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $folding-inner0 $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/date/Date $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $folding-inner0 $invalid + end + return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end return @@ -4321,14 +4330,7 @@ br $while-continue|01 end end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return + br $folding-inner0 end unreachable end @@ -4415,30 +4417,29 @@ i64.store offset=104 local.get $0 i32.load - local.tee $1 + local.tee $3 i32.const 0 i32.lt_s - local.tee $3 - local.get $1 + local.tee $1 + local.get $3 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 $3 + local.get $1 select - local.tee $3 + local.tee $5 i32.store - local.get $1 + local.get $3 i32.const 31 i32.shr_s - local.tee $4 + local.tee $1 local.get $1 - local.get $4 + local.get $3 i32.add i32.xor call $~lib/number/I32#toString @@ -4456,23 +4457,24 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + local.get $4 + local.get $5 local.get $1 call $~lib/string/String.__concat local.tee $1 i32.store offset=16 else global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 call $~lib/number/I32#toString - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=8 - local.get $1 + local.get $3 i32.const 4 call $~lib/string/String#padStart local.tee $1 @@ -4574,10 +4576,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 @@ -4622,10 +4623,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 @@ -4670,10 +4670,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 @@ -4716,10 +4715,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 @@ -4792,12 +4790,12 @@ i32.const 28 i32.const 4 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $2 i32.const 4560 i32.const 28 call $~lib/memory/memory.copy local.get $1 - local.get $6 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 48 @@ -4811,73 +4809,73 @@ i32.store offset=4 local.get $0 i32.load - local.tee $2 + local.tee $5 local.get $0 i32.load offset=4 - local.tee $5 + local.tee $1 i32.const 3 i32.lt_s i32.sub - local.tee $1 + local.set $4 + i32.const 7 i32.const 0 - i32.ge_s - local.set $7 - local.get $0 - i32.load offset=8 - local.tee $4 - local.get $5 + local.get $1 i32.const 1579 i32.add i32.load8_u - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 3 i32.sub - local.get $7 + local.get $4 + i32.const 0 + i32.ge_s + local.tee $6 select i32.const 4 i32.div_s - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 99 i32.sub - local.get $7 + local.get $6 select i32.const 100 i32.div_s i32.sub - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 399 i32.sub - local.get $7 + local.get $6 select i32.const 400 i32.div_s i32.add - local.get $1 + local.get $4 i32.add i32.add + local.get $0 + i32.load offset=8 + local.tee $4 i32.add i32.const 7 i32.rem_s local.tee $0 - i32.const 7 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s select + local.get $0 i32.add - local.set $1 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $2 + local.get $5 i32.const 31 i32.shr_s local.tee $7 - i32.add + local.get $5 local.get $7 + i32.add i32.xor call $~lib/number/I32#toString local.set $7 @@ -4892,15 +4890,15 @@ call $~lib/string/String#padStart local.tee $0 i32.store offset=16 - local.get $2 + local.get $5 i32.const 0 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i32.const 1616 i32.store offset=8 - local.get $2 + local.get $5 i32.const 1616 local.get $0 call $~lib/string/String.__concat @@ -4908,17 +4906,17 @@ i32.store offset=16 end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.tee $5 + local.get $6 i32.const 2 i32.shl - local.get $6 + local.get $2 i32.add i32.load - local.tee $1 + local.tee $2 i32.store offset=32 - local.get $2 local.get $5 + local.get $1 i32.const 1 i32.sub i32.const 2 @@ -4926,10 +4924,10 @@ local.get $3 i32.add i32.load - local.tee $2 + local.tee $1 i32.store offset=36 - local.get $1 local.get $2 + local.get $1 call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer @@ -4980,7 +4978,6 @@ (local $1 i64) (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -5030,10 +5027,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 @@ -5049,9 +5045,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 @@ -5069,23 +5065,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 @@ -5119,10 +5114,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 @@ -5142,8 +5136,8 @@ ) (func $~lib/date/Date#toUTCString (param $0 i32) (result i32) (local $1 i32) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -5166,131 +5160,131 @@ 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 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i64.const 0 i64.store offset=16 - local.get $1 + local.get $2 i64.const 0 i64.store offset=24 - local.get $1 + local.get $2 i64.const 0 i64.store offset=32 - local.get $1 + local.get $2 i64.const 0 i64.store offset=40 - local.get $1 + local.get $2 i64.const 0 i64.store offset=48 - local.get $1 + local.get $2 i64.const 0 i64.store offset=56 - local.get $1 + local.get $2 i64.const 0 i64.store offset=64 - local.get $1 + local.get $2 i64.const 0 i64.store offset=72 - local.get $1 + local.get $2 i64.const 0 i64.store offset=80 - local.get $1 + local.get $2 i64.const 0 i64.store offset=88 i32.const 28 i32.const 4 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.const 5616 i32.const 28 call $~lib/memory/memory.copy + local.get $2 local.get $1 - local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 48 i32.const 4 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.const 6048 i32.const 48 call $~lib/memory/memory.copy - local.get $4 + local.get $5 i32.store offset=4 local.get $0 i32.load - local.tee $5 + local.tee $6 local.get $0 i32.load offset=4 - local.tee $6 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.tee $1 + local.set $2 + i32.const 7 i32.const 0 - i32.ge_s - local.set $7 local.get $0 i32.load offset=8 - local.tee $8 - local.get $6 + local.tee $7 + local.get $4 i32.const 1579 i32.add i32.load8_u - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 3 i32.sub - local.get $7 + local.get $2 + i32.const 0 + i32.ge_s + local.tee $8 select i32.const 4 i32.div_s - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 99 i32.sub - local.get $7 + local.get $8 select i32.const 100 i32.div_s i32.sub - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 399 i32.sub - local.get $7 + local.get $8 select i32.const 400 i32.div_s i32.add - local.get $1 + local.get $2 i32.add i32.add i32.add i32.const 7 i32.rem_s - local.tee $1 - i32.const 7 - i32.const 0 - local.get $1 + local.tee $2 i32.const 0 i32.lt_s select + local.get $2 i32.add - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $5 - local.get $5 + local.get $6 i32.const 31 i32.shr_s local.tee $9 - i32.add + local.get $6 local.get $9 + i32.add i32.xor call $~lib/number/I32#toString local.set $9 @@ -5303,75 +5297,75 @@ local.get $9 i32.const 4 call $~lib/string/String#padStart - local.tee $1 + local.tee $2 i32.store offset=16 - local.get $5 + local.get $6 i32.const 0 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 i32.const 1616 i32.store offset=8 - local.get $5 + local.get $6 i32.const 1616 - local.get $1 + local.get $2 call $~lib/string/String.__concat - local.tee $1 + local.tee $2 i32.store offset=16 end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.const 2 i32.shl - local.get $3 + local.get $1 i32.add i32.load - local.tee $3 + local.tee $1 i32.store offset=80 - local.get $8 + local.get $7 call $~lib/number/I32#toString - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=88 global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=92 - local.get $5 + local.get $6 i32.const 2 call $~lib/string/String#padStart - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.store offset=84 - local.get $3 - local.get $5 + local.get $1 + local.get $6 call $~lib/string/String.__concat - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=72 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 1 i32.sub i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add i32.load local.tee $4 i32.store offset=76 - local.get $3 + local.get $1 local.get $4 call $~lib/string/String.__concat - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 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 @@ -5387,39 +5381,38 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=52 + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 - i64.const 86400000 - i64.const 0 - local.get $2 + local.tee $3 i64.const 0 i64.lt_s select + local.get $3 i64.add i32.wrap_i64 i32.const 3600000 i32.div_s call $~lib/number/I32#toString - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 + local.get $2 i32.store offset=60 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=68 - 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 + local.get $2 i32.store offset=56 local.get $1 - local.get $3 + local.get $2 call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer @@ -5435,39 +5428,38 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=36 + i64.const 3600000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 - i64.const 3600000 - i64.const 0 - local.get $2 + local.tee $3 i64.const 0 i64.lt_s select + local.get $3 i64.add i32.wrap_i64 i32.const 60000 i32.div_s call $~lib/number/I32#toString - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $3 + local.get $2 i32.store offset=44 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=52 - 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 + local.get $2 i32.store offset=40 local.get $1 - local.get $3 + local.get $2 call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer @@ -5483,17 +5475,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 + i64.const 60000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 - i64.const 60000 - i64.const 0 - local.get $2 + local.tee $3 i64.const 0 i64.lt_s select + local.get $3 i64.add i32.wrap_i64 i32.const 1000 @@ -5501,10 +5493,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 @@ -6068,8 +6059,9 @@ (func $start:std/date (local $0 i32) (local $1 i64) - (local $2 i32) + (local $2 i64) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 36 i32.sub @@ -6101,16 +6093,18 @@ 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 - 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.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6118,7 +6112,7 @@ i64.gt_s i32.or br_if $folding-inner0 - local.get $1 + local.get $2 i64.eqz i32.eqz if @@ -6138,6 +6132,7 @@ i32.const 0 call $~lib/date/epochMillis local.tee $1 + local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6145,7 +6140,6 @@ i64.gt_s i32.or br_if $folding-inner0 - local.get $1 i64.eqz i32.eqz if @@ -6165,6 +6159,7 @@ i32.const 0 call $~lib/date/epochMillis local.tee $1 + local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6172,7 +6167,6 @@ i64.gt_s i32.or br_if $folding-inner0 - local.get $1 i64.eqz i32.eqz if @@ -6192,6 +6186,7 @@ i32.const 0 call $~lib/date/epochMillis local.tee $1 + local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6199,7 +6194,6 @@ i64.gt_s i32.or br_if $folding-inner0 - local.get $1 i64.const 631152000000 i64.ne if @@ -6219,6 +6213,7 @@ i32.const 0 call $~lib/date/epochMillis local.tee $1 + local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6226,7 +6221,6 @@ i64.gt_s i32.or br_if $folding-inner0 - local.get $1 i64.const -65007360000000 i64.ne if @@ -6246,6 +6240,7 @@ i32.const 1 call $~lib/date/epochMillis local.tee $1 + local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6253,7 +6248,6 @@ i64.gt_s i32.or br_if $folding-inner0 - local.get $1 i64.const 1541847600001 i64.ne if @@ -6273,6 +6267,7 @@ i32.const 0 call $~lib/date/epochMillis local.tee $1 + local.get $1 i64.const -8640000000000000 i64.lt_s local.get $1 @@ -6280,7 +6275,6 @@ i64.gt_s i32.or br_if $folding-inner0 - local.get $1 i64.const 8640000000000000 i64.ne if @@ -7490,32 +7484,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.set $3 + local.set $4 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $2 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 3 i32.sub - local.get $3 + local.get $4 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 99 i32.sub local.get $0 @@ -7523,8 +7517,8 @@ i32.const 100 i32.div_s i32.sub - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 399 i32.sub local.get $0 @@ -7532,7 +7526,7 @@ i32.const 400 i32.div_s i32.add - local.get $3 + local.get $4 i32.add i32.add i32.add @@ -7563,32 +7557,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.set $3 + local.set $4 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $2 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 3 i32.sub - local.get $3 + local.get $4 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 99 i32.sub local.get $0 @@ -7596,8 +7590,8 @@ i32.const 100 i32.div_s i32.sub - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 399 i32.sub local.get $0 @@ -7605,7 +7599,7 @@ i32.const 400 i32.div_s i32.add - local.get $3 + local.get $4 i32.add i32.add i32.add @@ -7636,32 +7630,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.set $3 + local.set $4 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $2 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 3 i32.sub - local.get $3 + local.get $4 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 99 i32.sub local.get $0 @@ -7669,8 +7663,8 @@ i32.const 100 i32.div_s i32.sub - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 399 i32.sub local.get $0 @@ -7678,7 +7672,7 @@ i32.const 400 i32.div_s i32.add - local.get $3 + local.get $4 i32.add i32.add i32.add @@ -7709,32 +7703,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.set $3 + local.set $4 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $2 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 3 i32.sub - local.get $3 + local.get $4 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 99 i32.sub local.get $0 @@ -7742,8 +7736,8 @@ i32.const 100 i32.div_s i32.sub - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 399 i32.sub local.get $0 @@ -7751,7 +7745,7 @@ i32.const 400 i32.div_s i32.add - local.get $3 + local.get $4 i32.add i32.add i32.add @@ -7782,32 +7776,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.set $3 + local.set $4 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $2 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 3 i32.sub - local.get $3 + local.get $4 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 99 i32.sub local.get $0 @@ -7815,8 +7809,8 @@ i32.const 100 i32.div_s i32.sub - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 399 i32.sub local.get $0 @@ -7824,7 +7818,7 @@ i32.const 400 i32.div_s i32.add - local.get $3 + local.get $4 i32.add i32.add i32.add @@ -7855,32 +7849,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.set $3 + local.set $4 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $2 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 3 i32.sub - local.get $3 + local.get $4 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 99 i32.sub local.get $0 @@ -7888,8 +7882,8 @@ i32.const 100 i32.div_s i32.sub - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 399 i32.sub local.get $0 @@ -7897,7 +7891,7 @@ i32.const 400 i32.div_s i32.add - local.get $3 + local.get $4 i32.add i32.add i32.add @@ -7928,32 +7922,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.set $3 + local.set $4 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $2 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 3 i32.sub - local.get $3 + local.get $4 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 99 i32.sub local.get $0 @@ -7961,8 +7955,8 @@ i32.const 100 i32.div_s i32.sub - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 399 i32.sub local.get $0 @@ -7970,7 +7964,7 @@ i32.const 400 i32.div_s i32.add - local.get $3 + local.get $4 i32.add i32.add i32.add @@ -8001,32 +7995,32 @@ i32.load local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.set $3 + local.set $4 i32.const 7 i32.const 0 local.get $0 i32.load offset=8 - local.get $2 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 3 i32.sub - local.get $3 + local.get $4 i32.const 0 i32.ge_s local.tee $0 select i32.const 4 i32.div_s - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 99 i32.sub local.get $0 @@ -8034,8 +8028,8 @@ i32.const 100 i32.div_s i32.sub - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 399 i32.sub local.get $0 @@ -8043,7 +8037,7 @@ i32.const 400 i32.div_s i32.add - local.get $3 + local.get $4 i32.add i32.add i32.add @@ -8955,7 +8949,7 @@ global.get $~lib/memory/__stack_pointer i64.const 8640000000000000 call $~lib/date/Date#constructor - local.tee $2 + local.tee $3 i32.store local.get $0 i64.load offset=16 @@ -8969,7 +8963,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i64.load offset=16 i64.const 8640000000000000 i64.ne @@ -8993,7 +8987,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load i32.const 275760 i32.ne @@ -9017,7 +9011,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load offset=4 i32.const 9 i32.ne @@ -9041,7 +9035,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load offset=8 i32.const 13 i32.ne @@ -9057,10 +9051,10 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 local.get $0 i32.store offset=28 - local.get $3 + local.get $4 i32.const 7200 i32.store offset=32 local.get $0 @@ -9075,14 +9069,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store offset=28 - local.get $2 + local.get $3 i32.const 7280 i32.store offset=32 local.get $0 @@ -9105,9 +9099,9 @@ global.get $~lib/memory/__stack_pointer i64.const -8639999999999999 call $~lib/date/Date#constructor - local.tee $2 + local.tee $3 i32.store offset=12 - local.get $2 + local.get $3 i32.load i32.const -271821 i32.ne @@ -9119,7 +9113,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load offset=4 i32.const 4 i32.ne @@ -9131,7 +9125,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load offset=8 i32.const 20 i32.ne @@ -9145,7 +9139,7 @@ end i64.const 86400000 i64.const 0 - local.get $2 + local.get $3 i64.load offset=16 i64.const 86400000 i64.rem_s @@ -9168,7 +9162,7 @@ end i64.const 3600000 i64.const 0 - local.get $2 + local.get $3 i64.load offset=16 i64.const 3600000 i64.rem_s @@ -9191,7 +9185,7 @@ end i64.const 60000 i64.const 0 - local.get $2 + local.get $3 i64.load offset=16 i64.const 60000 i64.rem_s @@ -9214,7 +9208,7 @@ end i64.const 1000 i64.const 0 - local.get $2 + local.get $3 i64.load offset=16 i64.const 1000 i64.rem_s @@ -9239,10 +9233,10 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 local.get $0 i32.store offset=28 - local.get $3 + local.get $4 i32.const 7360 i32.store offset=32 local.get $0 @@ -9257,14 +9251,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store offset=28 - local.get $2 + local.get $3 i32.const 7440 i32.store offset=32 local.get $0 @@ -9379,6 +9373,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9438,25 +9433,28 @@ local.get $1 local.get $4 i32.sub - local.tee $1 + local.tee $6 i32.lt_u if + local.get $6 local.get $2 - local.get $1 + local.get $6 i32.const 2 i32.sub local.get $2 i32.div_u - local.tee $6 + local.tee $7 i32.mul - local.set $7 + local.tee $8 + i32.sub + local.set $1 local.get $2 - local.get $6 + local.get $7 i32.mul - local.set $6 + local.set $7 loop $while-continue|0 local.get $3 - local.get $6 + local.get $7 i32.lt_u if local.get $3 @@ -9473,21 +9471,19 @@ end end local.get $5 - local.get $7 + local.get $8 i32.add i32.const 1872 local.get $1 - local.get $7 - i32.sub call $~lib/memory/memory.copy else local.get $5 i32.const 1872 - local.get $1 + local.get $6 call $~lib/memory/memory.copy end - local.get $1 local.get $5 + local.get $6 i32.add local.get $0 local.get $4 @@ -9551,9 +9547,10 @@ i32.gt_s select local.tee $2 - local.get $2 + local.tee $4 local.get $3 - i32.gt_s + local.get $4 + i32.lt_s select i32.const 1 i32.shl @@ -9640,7 +9637,7 @@ local.get $0 i32.const 2 i32.shl - local.tee $1 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new local.tee $3 @@ -9648,30 +9645,30 @@ i32.const 16 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 local.get $3 i32.store local.get $3 if - local.get $2 + local.get $1 local.get $3 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $1 local.get $3 i32.store offset=4 - local.get $2 local.get $1 - i32.store offset=8 local.get $2 + i32.store offset=8 + 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 $2 + local.get $1 ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 3c1f5f2528..981f077769 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -209,19 +209,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -833,38 +831,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1466,11 +1462,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1481,19 +1477,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1501,7 +1498,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1512,16 +1509,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -1532,16 +1529,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1549,7 +1546,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1557,8 +1554,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1575,7 +1572,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1585,13 +1582,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1604,40 +1601,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -1667,8 +1664,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1737,7 +1734,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -1753,7 +1750,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 @@ -1763,23 +1760,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $7 i32.ne if - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $4 i32.load8_s local.tee $8 i32.store8 local.get $2 - local.get $5 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 @@ -1794,29 +1791,29 @@ 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 $4 + local.get $5 i32.add local.tee $8 i32.load @@ -1829,20 +1826,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 12 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -1871,68 +1868,68 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if local.get $0 - local.get $0 + local.tee $1 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $1 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $2 + local.get $0 i32.const -2 i32.and local.set $0 @@ -1940,8 +1937,9 @@ end end i32.const 0 + local.set $1 end - local.tee $0 + local.get $1 i32.eqz if i32.const 1616 @@ -1951,7 +1949,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) @@ -2636,313 +2634,313 @@ i32.store8 end ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 - i32.const 20 - i32.sub - local.tee $2 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub + i32.load offset=8 + local.tee $8 + local.get $2 + i32.shr_u local.get $1 - i32.ge_u + i32.lt_u if + i32.const 1073741820 local.get $2 + i32.shr_u local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $4 - local.get $1 - local.get $2 - i32.load offset=16 - local.tee $2 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $5 - block $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.tee $1 - local.get $0 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 + i32.lt_u + if + i32.const 1456 + i32.const 1728 + i32.const 18 + i32.const 48 + call $~lib/builtins/abort + unreachable + end local.get $0 + i32.load + local.set $7 local.get $1 - i32.sub - local.get $5 - i32.sub - i32.const 0 - local.get $5 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $1 - local.get $0 - local.get $5 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 + i32.const 8 local.get $1 + i32.const 8 i32.gt_u - if - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 + select + local.get $2 + i32.shl + local.set $6 + block $__inlined_func$~lib/rt/itcms/__renew + local.get $3 + if + local.get $8 + i32.const 1 + i32.shl + local.tee $1 + i32.const 1073741820 + local.get $1 + i32.const 1073741820 + i32.lt_u + select + local.tee $1 + local.get $6 + local.get $1 + local.get $6 + i32.gt_u + select + local.set $6 + end + local.get $6 + local.get $7 + local.tee $1 + i32.const 20 + i32.sub + local.tee $2 + i32.load + i32.const -4 i32.and - i32.eq + i32.const 16 + i32.sub + i32.le_u if - loop $while-continue|0 + local.get $2 + local.get $6 + i32.store offset=16 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $6 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $6 + local.get $2 + i32.load offset=16 + local.tee $2 + local.get $2 + local.get $6 + i32.gt_u + select + local.set $9 + block $~lib/util/memory/memmove|inlined.0 + local.get $3 + local.tee $2 + local.get $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $2 + i32.sub + local.get $9 + i32.sub + i32.const 0 + local.get $9 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $2 local.get $1 + local.get $9 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $1 + local.get $2 + i32.gt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $2 i32.const 7 i32.and + i32.eq if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - br $while-continue|0 + loop $while-continue|0 + local.get $2 + i32.const 7 + i32.and + if + local.get $9 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $2 + local.tee $5 + i32.const 1 + i32.add + local.set $2 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $5 + local.get $4 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $9 + i32.const 8 + i32.ge_u + if + local.get $2 + local.get $1 + i64.load + i64.store + local.get $9 + i32.const 8 + i32.sub + local.set $9 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end end - end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $1 - local.get $0 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - 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 + loop $while-continue|2 + local.get $9 + if + local.get $2 + local.tee $5 + i32.const 1 + i32.add + local.set $2 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $5 + local.get $4 + i32.load8_u + i32.store8 + local.get $9 + i32.const 1 + i32.sub + local.set $9 + br $while-continue|2 + end end - end - end - loop $while-continue|2 - local.get $5 - if + else local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 + i32.const 7 + i32.and local.get $2 - local.get $3 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $1 - local.get $5 - i32.add i32.const 7 i32.and + i32.eq if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 + loop $while-continue|3 + local.get $2 + local.get $9 + i32.add + i32.const 7 + i32.and + if + local.get $9 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $9 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + i32.add + local.get $1 + local.get $9 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $9 + i32.const 8 + i32.ge_u + if + local.get $9 + i32.const 8 + i32.sub + local.tee $9 + local.get $2 + i32.add + local.get $1 + local.get $9 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $9 + if + local.get $9 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + i32.add + local.get $1 + local.get $9 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end end end - end - end - local.get $4 - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - local.get $0 - i32.load offset=8 - local.tee $4 - local.get $2 - i32.shr_u - local.get $1 - i32.lt_u - if - i32.const 1073741820 - local.get $2 - i32.shr_u - local.get $1 - i32.lt_u - if - i32.const 1456 - i32.const 1728 - i32.const 18 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 8 - local.get $1 - i32.const 8 - i32.gt_u - select - local.get $2 - i32.shl - local.set $1 - local.get $0 - i32.load - local.tee $2 - local.get $3 - if - local.get $4 - i32.const 1 - i32.shl - local.tee $3 - i32.const 1073741820 - local.get $3 - i32.const 1073741820 - i32.lt_u - select - local.tee $3 - local.get $1 - local.get $1 local.get $3 - i32.lt_u - select local.set $1 end local.get $1 - call $~lib/rt/itcms/__renew - local.tee $3 - local.get $4 + local.get $8 i32.add - local.get $1 - local.get $4 + local.get $6 + local.get $8 i32.sub call $~lib/memory/memory.fill - local.get $2 - local.get $3 + local.get $1 + local.get $7 i32.ne if local.get $0 - local.get $3 + local.get $1 i32.store local.get $0 - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 if local.get $0 - local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end end local.get $0 - local.get $1 + local.get $6 i32.store offset=8 end ) @@ -3078,7 +3076,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -3094,7 +3092,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 @@ -3104,23 +3102,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $7 i32.ne if - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $4 i32.load local.tee $8 i32.store local.get $2 - local.get $5 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 @@ -3134,29 +3132,29 @@ 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 $4 + local.get $5 i32.add local.tee $8 i32.load @@ -3169,20 +3167,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 12 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -3212,51 +3210,50 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -3273,7 +3270,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -3282,8 +3278,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -3391,1769 +3388,1801 @@ (local $15 i32) (local $16 i32) (local $17 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 + (local $18 i32) + (local $19 i32) + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i64.const 0 - i64.store offset=8 - local.get $5 - i32.const 0 - i32.store offset=16 - local.get $5 - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - i32.const 24 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - local.get $6 - if - local.get $3 - local.get $6 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $3 - i32.const 3 - i32.store offset=4 - local.get $3 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store offset=8 - local.get $6 - if - local.get $3 - local.get $6 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $3 - i32.const 4 - i32.store offset=12 - local.get $3 - i32.const 0 - i32.store offset=16 - 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 $5 - local.get $3 - i32.store - loop $for-loop|1 - local.get $4 - i32.extend8_s - i32.const 100 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i64.const 0 + i64.store offset=8 + local.get $5 + i32.const 0 + i32.store offset=16 + local.get $5 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + local.get $9 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $9 + local.set $2 + local.get $3 if + local.get $2 local.get $3 - i32.load + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 3 + i32.store offset=4 + local.get $2 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=8 + local.get $3 + if + local.get $2 local.get $3 - i32.load offset=4 - local.get $4 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 4 + i32.store offset=12 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + 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 + i32.store + loop $for-loop|1 + local.get $0 i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - local.get $5 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - local.get $5 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - local.get $5 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.const 100 + i32.lt_s + if + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + local.tee $3 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load8_u + local.get $3 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find local.get $5 - i32.load8_u - local.get $4 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|0 end - br_if $__inlined_func$~lib/map/Map#find - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|0 end + i32.const 0 + local.set $6 end - i32.const 0 - local.set $5 - end - local.get $5 - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - local.get $4 - i32.extend8_s - local.tee $5 - i32.const 10 - i32.add - call $~lib/map/Map#set - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $5 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - local.get $5 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - local.get $5 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - local.get $5 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find1 - loop $while-continue|02 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.get $6 + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + local.tee $3 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + block $__inlined_func$~lib/map/Map#find1 + loop $while-continue|02 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load8_u + local.get $3 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find1 local.get $5 - i32.load8_u - local.get $4 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|02 end - br_if $__inlined_func$~lib/map/Map#find1 - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|02 end + i32.const 0 + local.set $6 end + local.get $6 i32.const 0 - local.set $5 - end - local.get $5 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - call $~lib/map/Map#get - local.get $4 - i32.extend8_s - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.extend8_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 end - end - local.get $3 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $4 - loop $for-loop|3 - local.get $4 - i32.extend8_s + local.get $2 + i32.load offset=20 i32.const 100 - i32.lt_s + i32.ne if - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $4 + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - local.get $5 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - local.get $5 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - local.get $5 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find4 - loop $while-continue|05 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load8_u - local.get $4 - i32.const 255 - i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find4 - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|05 - end - end - i32.const 0 - local.set $5 - end - local.get $5 - i32.eqz + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + local.tee $3 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - call $~lib/map/Map#get - local.get $4 - i32.extend8_s - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - local.get $4 - i32.extend8_s - local.tee $5 - i32.const 20 - i32.add - call $~lib/map/Map#set - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $5 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - local.get $5 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - local.get $5 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - local.get $5 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find7 - loop $while-continue|08 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + block $__inlined_func$~lib/map/Map#find4 + loop $while-continue|05 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load8_u + local.get $3 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find4 local.get $5 - i32.load8_u - local.get $4 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|05 end - br_if $__inlined_func$~lib/map/Map#find7 - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|08 end + i32.const 0 + local.set $6 end + local.get $6 i32.const 0 - local.set $5 - end - local.get $5 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - call $~lib/map/Map#get - local.get $4 - i32.extend8_s - i32.const 20 - i32.add - i32.ne - if + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.extend8_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + local.tee $3 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + block $__inlined_func$~lib/map/Map#find7 + loop $while-continue|08 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load8_u + local.get $3 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find7 + local.get $5 + i32.const -2 + i32.and + local.set $6 + br $while-continue|08 + end + end + i32.const 0 + local.set $6 + end + local.get $6 i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.extend8_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|3 end - end - local.get $3 - i32.load offset=20 - i32.const 100 - i32.ne - if + local.get $2 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $10 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $7 i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $4 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i32.const 0 - i32.store - local.get $3 - local.tee $4 - i32.load offset=8 - local.set $7 - local.get $3 - i32.load offset=16 - local.tee $8 - local.set $9 - local.get $6 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 16 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - i32.const 0 - i32.store - local.get $3 - i32.const 0 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.store offset=12 - local.get $9 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 65 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.const 8 - local.get $9 - i32.const 8 - i32.gt_u - select - local.tee $10 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=4 - local.get $11 - local.get $10 - call $~lib/memory/memory.fill - local.get $3 - local.get $11 - i32.store - local.get $11 - if + i32.store + local.get $2 + i32.load offset=8 + local.set $6 + local.get $2 + i32.load offset=16 + local.tee $5 + local.set $3 + local.get $7 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + local.get $8 + i32.const 0 + i32.store offset=12 local.get $3 - local.get $11 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $3 - local.get $11 - i32.store offset=4 - local.get $3 - local.get $10 - i32.store offset=8 - local.get $3 - 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 $6 - local.get $3 - i32.store - loop $for-loop|0 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 65 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 8 + local.get $3 + i32.const 8 + i32.gt_u + select + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/memory/memory.fill + local.get $8 + local.get $0 + i32.store + local.get $0 + if + local.get $8 + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=4 + local.get $8 local.get $2 + i32.store offset=8 + local.get $8 + 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 $8 + i32.store + loop $for-loop|0 + local.get $5 + local.get $19 + i32.gt_s + if + local.get $19 + i32.const 12 + i32.mul + local.get $6 + i32.add + local.tee $2 + i32.load offset=8 + i32.const 1 + 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 $2 + i32.load8_s + call $~lib/array/Array#__set + end + local.get $19 + i32.const 1 + i32.add + local.set $19 + br $for-loop|0 + end + end + local.get $8 + local.get $4 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $8 + local.get $4 + 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 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + call $~lib/map/Map#values + local.tee $17 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 2020 i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $7 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store + local.get $0 if - local.get $2 - i32.const 12 - i32.mul local.get $7 - i32.add - local.tee $6 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $7 + i32.const 3 + i32.store offset=4 + local.get $7 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=8 + local.get $0 + if + local.get $7 + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $7 + i32.const 4 + i32.store offset=12 + local.get $7 + i32.const 0 + i32.store offset=16 + local.get $7 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + call $~lib/map/Map#constructor + local.tee $13 + i32.store offset=16 + loop $for-loop|4 + local.get $8 + i32.load offset=12 + local.get $1 + i32.gt_s if - local.get $3 local.get $1 + local.tee $6 + local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 107 + i32.const 42 + call $~lib/builtins/abort + unreachable + end local.get $6 + local.get $8 + i32.load offset=4 + i32.add i32.load8_s - call $~lib/array/Array#__set - local.get $1 - i32.const 1 + local.set $2 + local.get $17 + local.get $6 + call $~lib/array/Array#__get + local.set $12 + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $2 + local.tee $0 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $3 - local.get $1 - i32.const 0 - i32.const 0 - call $~lib/array/ensureCapacity - 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 $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/map/Map#values - local.tee $13 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - i32.const 24 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $14 - i32.store - local.get $14 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 - i32.store - local.get $2 - if - local.get $14 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - i32.const 3 - i32.store offset=4 - local.get $14 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 - i32.store offset=8 - local.get $2 - if - local.get $14 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - i32.const 4 - i32.store offset=12 - local.get $14 - i32.const 0 - i32.store offset=16 - 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 $14 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $15 - i32.store offset=16 - loop $for-loop|4 - local.get $3 - i32.load offset=12 - local.get $0 - i32.gt_s - if - local.get $0 - local.tee $1 - local.get $3 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 107 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $3 - i32.load offset=4 - i32.add - i32.load8_s - local.set $5 - local.get $13 - local.get $1 - call $~lib/array/Array#__get - local.set $16 - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $5 - local.tee $6 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find12 - loop $while-continue|013 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load8_u - local.get $6 - i32.const 255 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $1 + i32.const 1 i32.and - i32.eq + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find10 + local.get $1 + i32.const -2 + i32.and + local.set $3 + br $while-continue|011 end - br_if $__inlined_func$~lib/map/Map#find12 - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|013 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - local.set $0 - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $16 - i32.const 20 - i32.sub - local.tee $2 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find15 - loop $while-continue|016 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $7 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $12 + i32.const 20 + i32.sub + local.tee $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $0 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find13 local.get $0 - i32.load8_u - local.get $2 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|014 end - br_if $__inlined_func$~lib/map/Map#find15 - local.get $7 - i32.const -2 - i32.and - local.set $0 - br $while-continue|016 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - local.set $0 - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $14 - i32.load - local.get $5 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $14 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|017 - local.get $2 - if - local.get $2 - local.tee $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + 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 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + local.set $5 + local.get $7 + local.tee $1 + i32.load + local.get $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + local.tee $16 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|015 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $0 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $5 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find local.get $0 - i32.load8_u - local.get $6 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|015 end - br_if $__inlined_func$~lib/map/Map#find - local.get $2 - i32.const -2 - i32.and - local.set $2 - br $while-continue|017 end + i32.const 0 + local.set $3 end - i32.const 0 - local.set $0 - end - local.get $0 - if - local.get $0 - local.get $6 - i32.store8 offset=1 - else - local.get $14 - i32.load offset=16 - local.get $14 - i32.load offset=12 - i32.eq + local.get $3 if - local.get $14 - i32.load offset=20 - local.get $14 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $14 - i32.load offset=4 - else - local.get $14 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $10 - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $10 - i32.const 1 - i32.add - local.tee $0 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 - i32.store offset=4 - local.get $14 - i32.load offset=8 - local.tee $7 - local.get $14 + local.get $3 + local.get $5 + i32.store8 offset=1 + else + local.get $1 i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $12 - local.get $2 - local.set $0 - loop $while-continue|018 - local.get $7 - local.get $12 - i32.ne - if - local.get $7 + local.get $1 + i32.load offset=12 + i32.eq + if + local.get $1 + local.tee $4 + i32.load offset=20 + local.get $1 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $4 + i32.load offset=4 + else + local.get $4 i32.load offset=4 i32.const 1 - i32.and - i32.eqz + i32.shl + i32.const 1 + i32.or + end + local.set $18 + 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 2020 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + local.get $18 + i32.const 1 + i32.add + local.tee $0 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $15 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + local.get $4 + i32.load offset=8 + local.tee $19 + local.get $4 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $14 + local.get $3 + local.set $0 + loop $while-continue|00 + local.get $14 + local.get $19 + i32.ne if - local.get $0 - local.get $7 - i32.load8_s - local.tee $17 - i32.store8 - local.get $0 - local.get $7 - i32.load8_s offset=1 - i32.store8 offset=1 - local.get $0 - local.get $17 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $17 - local.get $17 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $17 - local.get $17 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $17 - local.get $17 - i32.const 16 - i32.shr_u - i32.xor - local.get $10 + local.get $19 + i32.load offset=4 + i32.const 1 i32.and - i32.const 2 - i32.shl - local.get $11 - i32.add - local.tee $17 - i32.load - i32.store offset=4 - local.get $17 - local.get $0 - i32.store - local.get $0 + i32.eqz + if + local.get $0 + local.get $19 + i32.load8_s + local.tee $10 + i32.store8 + local.get $0 + local.get $19 + i32.load8_s offset=1 + i32.store8 offset=1 + local.get $0 + local.get $10 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $10 + local.get $10 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $10 + local.get $10 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $10 + local.get $10 + i32.const 16 + i32.shr_u + i32.xor + local.get $18 + i32.and + i32.const 2 + i32.shl + local.get $11 + i32.add + local.tee $10 + i32.load + i32.store offset=4 + local.get $10 + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $19 i32.const 8 i32.add - local.set $0 + local.set $19 + br $while-continue|00 end - local.get $7 - i32.const 8 - i32.add - local.set $7 - br $while-continue|018 end + local.get $4 + local.get $11 + i32.store + local.get $11 + if + local.get $1 + local.get $11 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $18 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $1 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $15 + i32.store offset=12 + local.get $1 + local.get $1 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $14 - local.get $11 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $3 i32.store - local.get $11 - if - local.get $14 - local.get $11 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - local.get $10 - i32.store offset=4 - local.get $14 - local.get $2 - i32.store offset=8 + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $0 + i32.const 1 + i32.add + i32.store offset=16 + local.get $0 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $3 local.get $2 - if - local.get $14 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - local.get $9 - i32.store offset=12 - local.get $14 - local.get $14 + i32.store8 + local.get $3 + local.get $5 + i32.store8 offset=1 + local.get $1 + local.get $1 i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=20 + local.get $3 + local.get $1 + i32.load + local.get $1 + i32.load offset=4 + local.get $16 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $14 - i32.load offset=8 - local.tee $0 - i32.store - local.get $14 - local.get $14 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.add - i32.store offset=16 - local.get $2 - i32.const 3 - i32.shl - local.get $0 + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + local.get $12 + i32.const 20 + i32.sub local.tee $0 - local.get $5 - i32.store8 local.get $0 + call $~lib/map/Map#set local.get $6 - i32.store8 offset=1 - local.get $14 - local.get $14 - i32.load offset=20 i32.const 1 i32.add - i32.store offset=20 - local.get $0 - local.get $14 - i32.load - local.get $14 - i32.load offset=4 - local.get $8 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $2 - i32.load - i32.store offset=4 - local.get $2 - local.get $0 - i32.store + local.set $1 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - local.get $16 - i32.const 20 - i32.sub - local.tee $0 - local.get $0 - call $~lib/map/Map#set - local.get $1 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 end - end - local.get $14 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $15 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|6 - local.get $0 - i32.extend8_s - i32.const 50 - i32.lt_s + local.get $7 + i32.load offset=20 + i32.const 100 + i32.ne if - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $0 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find20 - loop $while-continue|021 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $1 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load8_u - local.get $0 - i32.const 255 - i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find20 - local.get $1 - i32.const -2 - i32.and - local.set $5 - br $while-continue|021 - end - end - i32.const 0 - local.set $5 - end - local.get $5 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $0 - call $~lib/map/Map#get - local.get $0 + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $13 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|6 + local.get $1 i32.extend8_s - i32.const 20 - i32.add - i32.ne + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $0 - call $~lib/map/Map#delete - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $0 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find23 - loop $while-continue|024 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $1 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load8_u - local.get $0 - i32.const 255 + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $1 + local.tee $0 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find17 + loop $while-continue|018 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 i32.and - i32.eq + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find17 + local.get $2 + i32.const -2 + i32.and + local.set $3 + br $while-continue|018 end - br_if $__inlined_func$~lib/map/Map#find23 - local.get $1 - i32.const -2 - i32.and - local.set $5 - br $while-continue|024 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - local.set $5 - end - local.get $5 - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|6 - end - end - local.get $4 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|8 - local.get $0 - i32.extend8_s - i32.const 50 - i32.lt_s - if - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $0 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find26 - loop $while-continue|027 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $1 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load8_u - local.get $0 - i32.const 255 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#get + local.get $1 + i32.extend8_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#delete + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $1 + local.tee $0 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find20 + loop $while-continue|021 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 i32.and - i32.eq + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find20 + local.get $2 + i32.const -2 + i32.and + local.set $3 + br $while-continue|021 end - br_if $__inlined_func$~lib/map/Map#find26 - local.get $1 - i32.const -2 - i32.and - local.set $5 - br $while-continue|027 end + i32.const 0 + local.set $3 end - i32.const 0 - local.set $5 - end - local.get $5 - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|6 end - local.get $4 - local.get $0 - local.get $0 - i32.extend8_s - local.tee $1 - i32.const 10 - i32.add - call $~lib/map/Map#set - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 + end + local.get $9 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|8 local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find29 - loop $while-continue|030 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $1 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load8_u - local.get $0 - i32.const 255 + i32.extend8_s + i32.const 50 + i32.lt_s + if + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $1 + local.tee $0 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find23 + loop $while-continue|024 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 i32.and - i32.eq + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find23 + local.get $2 + i32.const -2 + i32.and + local.set $3 + br $while-continue|024 end - br_if $__inlined_func$~lib/map/Map#find29 - local.get $1 - i32.const -2 - i32.and - local.set $5 - br $while-continue|030 end + i32.const 0 + local.set $3 end - i32.const 0 - local.set $5 - end - local.get $5 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $0 - call $~lib/map/Map#delete - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $0 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find32 - loop $while-continue|033 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $1 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load8_u - local.get $0 - i32.const 255 + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + local.get $1 + i32.extend8_s + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $1 + local.tee $0 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find26 + loop $while-continue|027 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 i32.and - i32.eq + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find26 + local.get $2 + i32.const -2 + i32.and + local.set $3 + br $while-continue|027 end - br_if $__inlined_func$~lib/map/Map#find32 - local.get $1 - i32.const -2 - i32.and - local.set $5 - br $while-continue|033 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - local.set $5 - end - local.get $5 - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#delete + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $1 + local.tee $0 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find29 + loop $while-continue|030 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find29 + local.get $2 + i32.const -2 + i32.and + local.set $3 + br $while-continue|030 + end + end + i32.const 0 + local.set $3 + end + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|8 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|8 end + local.get $9 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/map/Map#clear + local.get $9 + i32.load offset=20 + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $4 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/map/Map#clear - local.get $4 - i32.load offset=20 - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end i32.const 18432 i32.const 18480 @@ -5197,7 +5226,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -5213,7 +5242,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 @@ -5223,29 +5252,27 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $7 i32.ne if - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $4 i32.load8_u local.tee $8 i32.store8 local.get $2 - local.get $5 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 local.get $8 - i32.const 255 - i32.and i32.const -1028477379 i32.mul i32.const 374761394 @@ -5255,29 +5282,29 @@ 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 $4 + local.get $5 i32.add local.tee $8 i32.load @@ -5290,20 +5317,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 12 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -5332,69 +5359,69 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if local.get $0 - local.get $0 + local.tee $1 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load8_u local.get $1 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $2 + local.get $0 i32.const -2 i32.and local.set $0 @@ -5402,8 +5429,9 @@ end end i32.const 0 + local.set $1 end - local.tee $0 + local.get $1 i32.eqz if i32.const 1616 @@ -5413,58 +5441,57 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 ) (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -5481,7 +5508,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -5490,8 +5516,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -5562,98 +5589,102 @@ (local $15 i32) (local $16 i32) (local $17 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 + (local $18 i32) + (local $19 i32) + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i64.const 0 - i64.store offset=8 - local.get $4 - i32.const 0 - i32.store offset=16 - local.get $4 - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - local.get $5 - i32.const 24 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store - local.get $11 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store - local.get $5 - if - local.get $11 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store local.get $5 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $11 - i32.const 3 - i32.store offset=4 - local.get $11 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - if - local.get $11 + i64.const 0 + i64.store offset=8 local.get $5 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $11 - i32.const 4 - i32.store offset=12 - local.get $11 - i32.const 0 - i32.store offset=16 - 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 $4 - local.get $11 - i32.store - loop $for-loop|1 + i32.const 0 + i32.store offset=16 + local.get $5 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store local.get $2 - i32.const 255 - i32.and - i32.const 100 - i32.lt_u + i32.const 24 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + local.get $9 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $9 + local.set $2 + local.get $3 if - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $11 + local.get $2 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 3 + i32.store offset=4 + local.get $2 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=8 + local.get $3 + if + local.get $2 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 4 + i32.store offset=12 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + 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 + i32.store + loop $for-loop|1 + local.get $0 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u + if + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $4 + i32.load offset=4 + local.get $0 + local.tee $3 i32.const 255 i32.and i32.const -1028477379 @@ -5688,60 +5719,60 @@ i32.shl i32.add i32.load - local.set $5 - loop $while-continue|0 - local.get $5 - if - local.get $5 - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $6 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load8_u + local.get $3 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find local.get $5 - i32.load8_u - local.get $4 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|0 end - br_if $__inlined_func$~lib/map/Map#find - drop - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|0 end + i32.const 0 + local.set $6 end - i32.const 0 - end - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $2 - local.get $2 - i32.const 255 - i32.and - i32.const 10 - i32.add - call $~lib/map/Map#set - block $__inlined_func$~lib/map/Map#find1 (result i32) - local.get $11 + local.get $6 + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $4 + i32.load offset=4 + local.get $0 + local.tee $3 i32.const 255 i32.and i32.const -1028477379 @@ -5776,98 +5807,100 @@ i32.shl i32.add i32.load - local.set $5 - loop $while-continue|02 - local.get $5 - if - local.get $5 - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $6 + block $__inlined_func$~lib/map/Map#find1 + loop $while-continue|02 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load8_u + local.get $3 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find1 local.get $5 - i32.load8_u - local.get $4 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|02 end - br_if $__inlined_func$~lib/map/Map#find1 - drop - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|02 end + i32.const 0 + local.set $6 end + local.get $6 i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.const 255 + i32.and + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $2 - call $~lib/map/Map#get - local.get $2 - i32.const 255 - i32.and - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 end - end - local.get $11 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $2 - loop $for-loop|3 local.get $2 - i32.const 255 - i32.and + i32.load offset=20 i32.const 100 - i32.lt_u + i32.ne if - block $__inlined_func$~lib/map/Map#find4 (result i32) - local.get $11 + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 255 + i32.and + i32.const 100 + i32.lt_u + if + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $4 + i32.load offset=4 + local.get $0 + local.tee $3 i32.const 255 i32.and i32.const -1028477379 @@ -5902,78 +5935,80 @@ i32.shl i32.add i32.load - local.set $5 - loop $while-continue|05 - local.get $5 - if - local.get $5 - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $6 + block $__inlined_func$~lib/map/Map#find4 + loop $while-continue|05 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load8_u + local.get $3 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find4 local.get $5 - i32.load8_u - local.get $4 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|05 end - br_if $__inlined_func$~lib/map/Map#find4 - drop - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|05 end + i32.const 0 + local.set $6 end + local.get $6 i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $2 - call $~lib/map/Map#get - local.get $2 - i32.const 255 - i32.and - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $2 - local.get $2 - i32.const 255 - i32.and - i32.const 20 - i32.add - call $~lib/map/Map#set - block $__inlined_func$~lib/map/Map#find7 (result i32) - local.get $11 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.const 255 + i32.and + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $4 + i32.load offset=4 + local.get $0 + local.tee $3 i32.const 255 i32.and i32.const -1028477379 @@ -6008,334 +6043,338 @@ i32.shl i32.add i32.load - local.set $5 - loop $while-continue|08 - local.get $5 - if - local.get $5 - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $6 + block $__inlined_func$~lib/map/Map#find7 + loop $while-continue|08 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load8_u + local.get $3 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find7 local.get $5 - i32.load8_u - local.get $4 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|08 end - br_if $__inlined_func$~lib/map/Map#find7 - drop - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|08 end + i32.const 0 + local.set $6 end + local.get $6 i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.const 255 + i32.and + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $2 - call $~lib/map/Map#get - local.get $2 - i32.const 255 - i32.and - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|3 end - end - local.get $11 - i32.load offset=20 - i32.const 100 - i32.ne - if + local.get $2 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $10 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $7 i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $11 - i32.load offset=8 - local.set $5 - local.get $11 - i32.load offset=16 - local.tee $6 - local.set $7 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $8 - i64.const 0 - i64.store - local.get $8 - i32.const 16 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $12 - i32.store - local.get $12 - i32.const 0 - i32.store - local.get $12 - i32.const 0 - i32.store offset=4 - local.get $12 - i32.const 0 - i32.store offset=8 - local.get $12 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 65 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 8 - local.get $7 - i32.const 8 - i32.gt_u - select - local.tee $8 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=4 - local.get $9 - local.get $8 - call $~lib/memory/memory.fill - local.get $12 - local.get $9 - i32.store - local.get $9 - if - local.get $12 - local.get $9 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $12 - local.get $9 - 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 $2 - local.get $12 - i32.store - loop $for-loop|0 - local.get $1 - local.get $6 + i32.store + local.get $2 + i32.load offset=8 + local.set $6 + local.get $2 + i32.load offset=16 + local.tee $5 + local.set $3 + local.get $7 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $3 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 65 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 8 + local.get $3 + i32.const 8 + i32.gt_u + select + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/memory/memory.fill + local.get $8 + local.get $0 + i32.store + local.get $0 if - local.get $1 - i32.const 12 - i32.mul + local.get $8 + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=4 + local.get $8 + local.get $2 + i32.store offset=8 + local.get $8 + 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 $8 + i32.store + loop $for-loop|0 local.get $5 - i32.add - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.get $19 + i32.gt_s if - local.get $12 - local.get $3 - local.get $2 - i32.load8_u - call $~lib/array/Array#__set - local.get $3 + local.get $19 + i32.const 12 + i32.mul + local.get $6 + i32.add + local.tee $2 + i32.load offset=8 + i32.const 1 + 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 $2 + i32.load8_u + call $~lib/array/Array#__set + end + local.get $19 i32.const 1 i32.add - local.set $3 + local.set $19 + br $for-loop|0 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 end - end - local.get $12 - local.get $3 - i32.const 0 - i32.const 0 - call $~lib/array/ensureCapacity - local.get $12 - local.get $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $11 - call $~lib/map/Map#values - local.tee $13 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - i32.const 24 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $14 - i32.store - local.get $14 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 - i32.store - local.get $2 - if - local.get $14 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - i32.const 3 - i32.store offset=4 - local.get $14 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 - i32.store offset=8 - local.get $2 - if - local.get $14 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - i32.const 4 - i32.store offset=12 - local.get $14 - i32.const 0 - i32.store offset=16 - 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 $14 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $15 - i32.store offset=16 - loop $for-loop|4 - local.get $12 - i32.load offset=12 + local.get $8 + local.get $4 + i32.const 0 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $8 + local.get $4 + 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 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + call $~lib/map/Map#values + local.tee $17 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $7 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store local.get $0 - i32.gt_s if - local.get $12 - i32.load offset=12 - local.get $0 - i32.le_u - if - i32.const 1248 - i32.const 1728 - i32.const 107 - i32.const 42 - call $~lib/builtins/abort - unreachable - end + local.get $7 local.get $0 - local.get $12 - i32.load offset=4 - i32.add - i32.load8_u - local.set $2 - local.get $13 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $7 + i32.const 3 + i32.store offset=4 + local.get $7 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=8 + local.get $0 + if + local.get $7 local.get $0 - call $~lib/array/Array#__get - local.set $16 - block $__inlined_func$~lib/map/Map#find10 (result i32) - local.get $11 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $7 + i32.const 4 + i32.store offset=12 + local.get $7 + i32.const 0 + i32.store offset=16 + local.get $7 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + call $~lib/map/Map#constructor + local.tee $13 + i32.store offset=16 + loop $for-loop|4 + local.get $8 + i32.load offset=12 + local.get $1 + i32.gt_s + if + local.get $1 + local.tee $6 + local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 107 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $8 + i32.load offset=4 + i32.add + i32.load8_u + local.set $2 + local.get $17 + local.get $6 + call $~lib/array/Array#__get + local.set $12 + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 local.get $2 - local.tee $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -6346,24 +6385,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $1 i32.const 15 i32.shr_u - local.get $3 + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $1 i32.const 13 i32.shr_u - local.get $3 + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $1 i32.const 16 i32.shr_u - local.get $3 + local.get $1 i32.xor i32.and i32.const 2 @@ -6371,54 +6410,56 @@ i32.add i32.load local.set $3 - loop $while-continue|011 - local.get $3 - if + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 local.get $3 - local.get $3 - i32.load offset=8 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + if local.get $3 - i32.load8_u - local.get $1 - i32.const 255 + i32.load offset=8 + local.tee $1 + i32.const 1 i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find10 - drop - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|011 + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find10 + local.get $1 + i32.const -2 + i32.and + local.set $3 + br $while-continue|011 + end end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - block $__inlined_func$~lib/map/Map#find13 (result i32) - local.get $11 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $16 + local.get $12 i32.const 20 i32.sub - local.tee $3 + local.tee $1 i32.const 255 i32.and i32.const -1028477379 @@ -6429,440 +6470,446 @@ 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 $1 - loop $while-continue|014 - local.get $1 - if - local.get $1 - local.get $1 - i32.load offset=8 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - i32.load8_u + local.set $3 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 + local.get $3 + if local.get $3 - i32.const 255 + i32.load offset=8 + local.tee $0 + i32.const 1 i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find13 - drop - local.get $4 - i32.const -2 - i32.and - local.set $1 - br $while-continue|014 - end - end - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - local.get $14 - i32.load - local.get $2 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - local.tee $6 - local.get $14 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|015 - local.get $1 - if - local.get $1 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - i32.load8_u - local.get $3 - i32.const 255 + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find13 + local.get $0 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|014 end - br_if $__inlined_func$~lib/map/Map#find - local.get $4 - i32.const -2 - i32.and - local.set $1 - br $while-continue|015 end + i32.const 0 + local.set $3 end - i32.const 0 - local.set $1 - end - local.get $1 - if - local.get $1 local.get $3 - i32.store8 offset=1 - else - local.get $14 - i32.load offset=16 - local.get $14 - i32.load offset=12 - i32.eq + i32.const 0 + i32.ne + i32.eqz if - local.get $14 - i32.load offset=20 - local.get $14 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $14 - i32.load offset=4 - else - local.get $14 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $8 - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $8 - i32.const 1 - i32.add - local.tee $1 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - local.get $14 - i32.load offset=8 - local.tee $5 - local.get $14 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $10 - local.get $4 - local.set $1 - loop $while-continue|0216 - local.get $5 - local.get $10 - i32.ne + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + 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 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + local.set $5 + local.get $7 + local.tee $1 + i32.load + local.get $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + local.tee $16 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|015 + local.get $3 if - local.get $5 + local.get $3 i32.load offset=4 + local.tee $0 i32.const 1 i32.and - i32.eqz - if - local.get $1 - local.get $5 + if (result i32) + i32.const 0 + else + local.get $3 i32.load8_u - local.tee $17 - i32.store8 - local.get $1 local.get $5 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $1 - local.get $17 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $17 - local.get $17 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $17 - local.get $17 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $17 - local.get $17 - i32.const 16 - i32.shr_u - i32.xor - local.get $8 + i32.const 255 i32.and - i32.const 2 - i32.shl - local.get $9 - i32.add - local.tee $17 - i32.load - i32.store offset=4 - local.get $17 - local.get $1 - i32.store - local.get $1 - i32.const 8 - i32.add - local.set $1 + i32.eq end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|0216 + br_if $__inlined_func$~lib/map/Map#find + local.get $0 + i32.const -2 + i32.and + local.set $3 + br $while-continue|015 end end - local.get $14 - local.get $9 - i32.store - local.get $9 - if - local.get $14 - local.get $9 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - local.get $8 - i32.store offset=4 - local.get $14 - local.get $4 - i32.store offset=8 - local.get $4 + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $5 + i32.store8 offset=1 + else + local.get $1 + i32.load offset=16 + local.get $1 + i32.load offset=12 + i32.eq if - local.get $14 + local.get $1 + local.tee $4 + i32.load offset=20 + local.get $1 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $4 + i32.load offset=4 + else + local.get $4 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $18 + 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 2020 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + local.get $18 + i32.const 1 + i32.add + local.tee $0 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $15 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 local.get $4 - call $byn-split-outlined-A$~lib/rt/itcms/__link + i32.load offset=8 + local.tee $19 + local.get $4 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $14 + local.get $3 + local.set $0 + loop $while-continue|00 + local.get $14 + local.get $19 + i32.ne + if + local.get $19 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $0 + local.get $19 + i32.load8_u + local.tee $10 + i32.store8 + local.get $0 + local.get $19 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + local.get $10 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $10 + local.get $10 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $10 + local.get $10 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $10 + local.get $10 + i32.const 16 + i32.shr_u + i32.xor + local.get $18 + i32.and + i32.const 2 + i32.shl + local.get $11 + i32.add + local.tee $10 + i32.load + i32.store offset=4 + local.get $10 + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $19 + i32.const 8 + i32.add + local.set $19 + br $while-continue|00 + end + end + local.get $4 + local.get $11 + i32.store + local.get $11 + if + local.get $1 + local.get $11 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $18 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $1 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $15 + i32.store offset=12 + local.get $1 + local.get $1 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $14 - local.get $7 - i32.store offset=12 - local.get $14 - local.get $14 - i32.load offset=20 - i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.load offset=8 + local.tee $3 + i32.store + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=16 + local.get $0 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $3 + local.get $2 + i32.store8 + local.get $3 + local.get $5 + i32.store8 offset=1 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $1 + i32.load + local.get $1 + i32.load offset=4 + local.get $16 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.load offset=8 - local.tee $1 - i32.store - local.get $14 - local.get $14 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - i32.const 3 - i32.shl - local.get $1 - i32.add - local.tee $1 - local.get $2 - i32.store8 - local.get $1 - local.get $3 - i32.store8 offset=1 - local.get $14 - local.get $14 - i32.load offset=20 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.store offset=20 - local.get $1 - local.get $14 - i32.load - local.get $14 - i32.load offset=4 + global.set $~lib/memory/__stack_pointer + local.get $13 + local.get $12 + i32.const 20 + i32.sub + local.tee $0 + local.get $0 + call $~lib/map/Map#set local.get $6 - i32.and - i32.const 2 - i32.shl + i32.const 1 i32.add - local.tee $2 - i32.load - i32.store offset=4 - local.get $2 - local.get $1 - i32.store + local.set $1 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - local.get $16 - i32.const 20 - i32.sub - local.tee $1 - local.get $1 - call $~lib/map/Map#set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 end - end - local.get $14 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $15 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|6 - local.get $0 - i32.const 255 - i32.and - i32.const 50 - i32.lt_u + local.get $7 + i32.load offset=20 + i32.const 100 + i32.ne if - block $__inlined_func$~lib/map/Map#find18 (result i32) - local.get $11 + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $13 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|6 + local.get $1 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + if + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -6897,73 +6944,75 @@ i32.shl i32.add i32.load - local.set $2 - loop $while-continue|019 - local.get $2 - if - local.get $2 - local.get $2 - i32.load offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $3 + block $__inlined_func$~lib/map/Map#find17 + loop $while-continue|018 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find17 local.get $2 - i32.load8_u - local.get $1 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|018 end - br_if $__inlined_func$~lib/map/Map#find18 - drop - local.get $3 - i32.const -2 - i32.and - local.set $2 - br $while-continue|019 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 255 - i32.and - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $0 - call $~lib/map/Map#delete - block $__inlined_func$~lib/map/Map#find21 (result i32) - local.get $11 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#get + local.get $1 + i32.const 255 + i32.and + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#delete + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -6998,80 +7047,80 @@ i32.shl i32.add i32.load - local.set $2 - loop $while-continue|022 - local.get $2 - if - local.get $2 - local.get $2 - i32.load offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $3 + block $__inlined_func$~lib/map/Map#find20 + loop $while-continue|021 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find20 local.get $2 - i32.load8_u - local.get $1 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|021 end - br_if $__inlined_func$~lib/map/Map#find21 - drop - local.get $3 - i32.const -2 - i32.and - local.set $2 - br $while-continue|022 end + i32.const 0 + local.set $3 end - i32.const 0 - end - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|6 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|6 end - end - local.get $11 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|8 - local.get $0 - i32.const 255 - i32.and + local.get $9 + i32.load offset=20 i32.const 50 - i32.lt_u + i32.ne if - block $__inlined_func$~lib/map/Map#find24 (result i32) - local.get $11 + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|8 + local.get $1 + i32.const 255 + i32.and + i32.const 50 + i32.lt_u + if + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -7106,60 +7155,60 @@ i32.shl i32.add i32.load - local.set $2 - loop $while-continue|025 - local.get $2 - if - local.get $2 - local.get $2 - i32.load offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $3 + block $__inlined_func$~lib/map/Map#find23 + loop $while-continue|024 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find23 local.get $2 - i32.load8_u - local.get $1 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|024 end - br_if $__inlined_func$~lib/map/Map#find24 - drop - local.get $3 - i32.const -2 - i32.and - local.set $2 - br $while-continue|025 end + i32.const 0 + local.set $3 end - i32.const 0 - end - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $0 - local.get $0 - i32.const 255 - i32.and - i32.const 10 - i32.add - call $~lib/map/Map#set - block $__inlined_func$~lib/map/Map#find27 (result i32) - local.get $11 + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -7194,56 +7243,58 @@ i32.shl i32.add i32.load - local.set $2 - loop $while-continue|028 - local.get $2 - if - local.get $2 - local.get $2 - i32.load offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $3 + block $__inlined_func$~lib/map/Map#find26 + loop $while-continue|027 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find26 local.get $2 - i32.load8_u - local.get $1 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|027 end - br_if $__inlined_func$~lib/map/Map#find27 - drop - local.get $3 - i32.const -2 - i32.and - local.set $2 - br $while-continue|028 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $0 - call $~lib/map/Map#delete - block $__inlined_func$~lib/map/Map#find30 (result i32) - local.get $11 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#delete + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 255 i32.and i32.const -1028477379 @@ -7278,81 +7329,83 @@ i32.shl i32.add i32.load - local.set $2 - loop $while-continue|031 - local.get $2 - if - local.get $2 - local.get $2 - i32.load offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $3 + block $__inlined_func$~lib/map/Map#find29 + loop $while-continue|030 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find29 local.get $2 - i32.load8_u - local.get $1 - i32.const 255 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|030 end - br_if $__inlined_func$~lib/map/Map#find30 - drop - local.get $3 - i32.const -2 - i32.and - local.set $2 - br $while-continue|031 end + i32.const 0 + local.set $3 end - i32.const 0 - end - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|8 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|8 end + local.get $9 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/map/Map#clear + local.get $9 + i32.load offset=20 + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $11 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $11 - call $~lib/map/Map#clear - local.get $11 - i32.load offset=20 - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end i32.const 18432 i32.const 18480 @@ -7396,7 +7449,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -7412,7 +7465,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 @@ -7422,23 +7475,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $7 i32.ne if - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $4 i32.load16_s local.tee $8 i32.store16 local.get $2 - local.get $5 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 @@ -7453,29 +7506,29 @@ 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 $4 + local.get $5 i32.add local.tee $8 i32.load @@ -7488,20 +7541,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 12 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -7530,68 +7583,68 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if local.get $0 - local.get $0 + local.tee $1 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $1 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $2 + local.get $0 i32.const -2 i32.and local.set $0 @@ -7599,8 +7652,9 @@ end end i32.const 0 + local.set $1 end - local.tee $0 + local.get $1 i32.eqz if i32.const 1616 @@ -7610,7 +7664,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) @@ -7655,51 +7709,50 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -7716,7 +7769,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -7725,8 +7777,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -7797,1773 +7850,1805 @@ (local $15 i32) (local $16 i32) (local $17 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 + (local $18 i32) + (local $19 i32) + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i64.const 0 - i64.store offset=8 - local.get $5 - i32.const 0 - i32.store offset=16 - local.get $5 - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $3 - i32.const 24 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - local.get $6 - if - local.get $3 - local.get $6 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $3 - i32.const 3 - i32.store offset=4 - local.get $3 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store offset=8 - local.get $6 - if - local.get $3 - local.get $6 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $3 - i32.const 4 - i32.store offset=12 - local.get $3 - i32.const 0 - i32.store offset=16 - 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 $5 - local.get $3 - i32.store - loop $for-loop|1 - local.get $4 - i32.extend16_s - i32.const 100 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i64.const 0 + i64.store offset=8 + local.get $5 + i32.const 0 + i32.store offset=16 + local.get $5 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + i32.const 24 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + local.get $9 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $9 + local.set $2 + local.get $3 if + local.get $2 local.get $3 - i32.load + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 3 + i32.store offset=4 + local.get $2 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=8 + local.get $3 + if + local.get $2 local.get $3 - i32.load offset=4 - local.get $4 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 4 + i32.store offset=12 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + 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 + i32.store + loop $for-loop|1 + local.get $0 i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - local.get $5 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - local.get $5 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - local.get $5 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|0 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.const 100 + i32.lt_s + if + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + local.tee $3 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find local.get $5 - i32.load16_u - local.get $4 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|0 end - br_if $__inlined_func$~lib/map/Map#find - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|0 end + i32.const 0 + local.set $6 end - i32.const 0 - local.set $5 - end - local.get $5 - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - local.get $4 - i32.extend16_s - local.tee $5 - i32.const 10 - i32.add - call $~lib/map/Map#set - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $5 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - local.get $5 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - local.get $5 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - local.get $5 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find1 - loop $while-continue|02 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.get $6 + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + local.tee $3 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + block $__inlined_func$~lib/map/Map#find1 + loop $while-continue|02 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find1 local.get $5 - i32.load16_u - local.get $4 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|02 end - br_if $__inlined_func$~lib/map/Map#find1 - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|02 end + i32.const 0 + local.set $6 end + local.get $6 i32.const 0 - local.set $5 - end - local.get $5 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - call $~lib/map/Map#get - local.get $4 - i32.extend16_s - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.extend16_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 end - end - local.get $3 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $4 - loop $for-loop|3 - local.get $4 - i32.extend16_s + local.get $2 + i32.load offset=20 i32.const 100 - i32.lt_s + i32.ne if - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $4 + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - local.get $5 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - local.get $5 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - local.get $5 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find4 - loop $while-continue|05 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load16_u - local.get $4 - i32.const 65535 - i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find4 - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|05 - end - end - i32.const 0 - local.set $5 - end - local.get $5 - i32.eqz + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + local.tee $3 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - call $~lib/map/Map#get - local.get $4 - i32.extend16_s - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - local.get $4 - i32.extend16_s - local.tee $5 - i32.const 20 - i32.add - call $~lib/map/Map#set - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $5 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - local.get $5 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - local.get $5 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - local.get $5 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find7 - loop $while-continue|08 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + block $__inlined_func$~lib/map/Map#find4 + loop $while-continue|05 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find4 local.get $5 - i32.load16_u - local.get $4 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|05 end - br_if $__inlined_func$~lib/map/Map#find7 - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|08 end + i32.const 0 + local.set $6 end + local.get $6 i32.const 0 - local.set $5 - end - local.get $5 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $4 - call $~lib/map/Map#get - local.get $4 - i32.extend16_s - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|3 - end - end - local.get $3 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $4 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i32.const 0 - i32.store - local.get $3 - local.tee $4 - i32.load offset=8 - local.set $7 - local.get $3 - i32.load offset=16 - local.tee $8 - local.set $9 - local.get $6 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 16 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - i32.const 0 - i32.store - local.get $3 - i32.const 0 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.store offset=12 - local.get $9 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 65 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.const 8 - local.get $9 - i32.const 8 - i32.gt_u - select - i32.const 1 - i32.shl - local.tee $10 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=4 - local.get $11 - local.get $10 - call $~lib/memory/memory.fill - local.get $3 - local.get $11 - i32.store - local.get $11 - if - local.get $3 - local.get $11 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $3 - local.get $11 - i32.store offset=4 - local.get $3 - local.get $10 - i32.store offset=8 - local.get $3 - 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 $6 - local.get $3 - i32.store - loop $for-loop|0 - local.get $2 - local.get $8 - i32.lt_s - if - local.get $2 - i32.const 12 - i32.mul - local.get $7 - i32.add - local.tee $6 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $1 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.extend16_s + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + local.tee $3 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + block $__inlined_func$~lib/map/Map#find7 + loop $while-continue|08 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find7 + local.get $5 + i32.const -2 + i32.and + local.set $6 + br $while-continue|08 + end + end + i32.const 0 + local.set $6 + end local.get $6 - i32.load16_s - call $~lib/array/Array#__set - local.get $1 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.extend16_s + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 + br $for-loop|3 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end - end - local.get $3 - local.get $1 - i32.const 1 - i32.const 0 - call $~lib/array/ensureCapacity - 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 $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - call $~lib/map/Map#values - local.tee $13 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - i32.const 24 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $14 - i32.store - local.get $14 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 - i32.store - local.get $2 - if - local.get $14 local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - i32.const 3 - i32.store offset=4 - local.get $14 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 - i32.store offset=8 - local.get $2 - if - local.get $14 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $10 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $7 + i32.const 0 + i32.store local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - i32.const 4 - i32.store offset=12 - local.get $14 - i32.const 0 - i32.store offset=16 - 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 $14 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $15 - i32.store offset=16 - loop $for-loop|4 + i32.load offset=8 + local.set $6 + local.get $2 + i32.load offset=16 + local.tee $5 + local.set $3 + local.get $7 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + local.get $8 + i32.const 0 + i32.store offset=12 local.get $3 - i32.load offset=12 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 65 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 8 + local.get $3 + i32.const 8 + i32.gt_u + select + i32.const 1 + i32.shl + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/memory/memory.fill + local.get $8 + local.get $0 + i32.store local.get $0 - i32.gt_s if + local.get $8 local.get $0 - local.tee $1 - local.get $3 - i32.load offset=12 - i32.ge_u + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=4 + local.get $8 + local.get $2 + i32.store offset=8 + local.get $8 + 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 $8 + i32.store + loop $for-loop|0 + local.get $5 + local.get $19 + i32.gt_s if - i32.const 1248 - i32.const 1728 - i32.const 107 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $19 + i32.const 12 + i32.mul + local.get $6 + i32.add + local.tee $2 + i32.load offset=8 + i32.const 1 + 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 $2 + i32.load16_s + call $~lib/array/Array#__set + end + local.get $19 + i32.const 1 + i32.add + local.set $19 + br $for-loop|0 end - local.get $3 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - local.get $13 - local.get $1 - call $~lib/array/Array#__get - local.set $16 - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $5 - local.tee $6 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 + end + local.get $8 + local.get $4 + i32.const 1 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $8 + local.get $4 + 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 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + call $~lib/map/Map#values + local.tee $17 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $7 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store + local.get $0 + if + local.get $7 local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $7 + i32.const 3 + i32.store offset=4 + local.get $7 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=8 + local.get $0 + if + local.get $7 local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find12 - loop $while-continue|013 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load16_u - local.get $6 - i32.const 65535 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $7 + i32.const 4 + i32.store offset=12 + local.get $7 + i32.const 0 + i32.store offset=16 + local.get $7 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + call $~lib/map/Map#constructor + local.tee $13 + i32.store offset=16 + loop $for-loop|4 + local.get $8 + i32.load offset=12 + local.get $1 + i32.gt_s + if + local.get $1 + local.tee $6 + local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 107 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $2 + local.get $17 + local.get $6 + call $~lib/array/Array#__get + local.set $12 + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $2 + local.tee $0 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $1 + i32.const 1 i32.and - i32.eq + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find10 + local.get $1 + i32.const -2 + i32.and + local.set $3 + br $while-continue|011 end - br_if $__inlined_func$~lib/map/Map#find12 - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|013 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - local.set $0 - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $16 - i32.const 20 - i32.sub - local.tee $2 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find15 - loop $while-continue|016 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $7 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $12 + i32.const 20 + i32.sub + local.tee $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $0 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find13 local.get $0 - i32.load16_u - local.get $2 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|014 end - br_if $__inlined_func$~lib/map/Map#find15 - local.get $7 - i32.const -2 - i32.and - local.set $0 - br $while-continue|016 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - local.set $0 - end - local.get $0 - i32.eqz - if + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + 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 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $14 - i32.load - local.get $5 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $14 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|017 - local.get $2 - if - local.get $2 - local.tee $0 - i32.load offset=4 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.store + local.get $2 + local.set $5 + local.get $7 + local.tee $1 + i32.load + local.get $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + local.tee $16 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|015 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $0 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $5 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find local.get $0 - i32.load16_u - local.get $6 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|015 end - br_if $__inlined_func$~lib/map/Map#find - local.get $2 - i32.const -2 - i32.and - local.set $2 - br $while-continue|017 end + i32.const 0 + local.set $3 end - i32.const 0 - local.set $0 - end - local.get $0 - if - local.get $0 - local.get $6 - i32.store16 offset=2 - else - local.get $14 - i32.load offset=16 - local.get $14 - i32.load offset=12 - i32.eq + local.get $3 if - local.get $14 - i32.load offset=20 - local.get $14 + local.get $3 + local.get $5 + i32.store16 offset=2 + else + local.get $1 + i32.load offset=16 + local.get $1 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $14 - i32.load offset=4 - else - local.get $14 - i32.load offset=4 + i32.eq + if + local.get $1 + local.tee $4 + i32.load offset=20 + local.get $1 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $4 + i32.load offset=4 + else + local.get $4 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $18 + 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 2020 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + local.get $18 i32.const 1 + i32.add + local.tee $0 + i32.const 2 i32.shl - i32.const 1 - i32.or + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $15 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + local.get $4 + i32.load offset=8 + local.tee $19 + local.get $4 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $14 + local.get $3 + local.set $0 + loop $while-continue|00 + local.get $14 + local.get $19 + i32.ne + if + local.get $19 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $0 + local.get $19 + i32.load16_s + local.tee $10 + i32.store16 + local.get $0 + local.get $19 + i32.load16_s offset=2 + i32.store16 offset=2 + local.get $0 + local.get $10 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $10 + local.get $10 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $10 + local.get $10 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $10 + local.get $10 + i32.const 16 + i32.shr_u + i32.xor + local.get $18 + i32.and + i32.const 2 + i32.shl + local.get $11 + i32.add + local.tee $10 + i32.load + i32.store offset=4 + local.get $10 + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $19 + i32.const 8 + i32.add + local.set $19 + br $while-continue|00 + end + end + local.get $4 + local.get $11 + i32.store + local.get $11 + if + local.get $1 + local.get $11 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $18 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $1 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $15 + i32.store offset=12 + local.get $1 + local.get $1 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.set $10 - 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 2020 - i32.lt_s - br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $3 + i32.store + local.get $1 + local.get $1 + i32.load offset=16 local.tee $0 - i64.const 0 - i64.store - local.get $0 - local.get $10 i32.const 1 i32.add - local.tee $0 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 - i32.store - global.get $~lib/memory/__stack_pointer + i32.store offset=16 local.get $0 i32.const 3 i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 - i32.store offset=4 - local.get $14 - i32.load offset=8 - local.tee $7 - local.get $14 - i32.load offset=16 - i32.const 3 - i32.shl + local.get $3 i32.add - local.set $12 - local.get $2 - local.set $0 - loop $while-continue|018 - local.get $7 - local.get $12 - i32.ne - if - local.get $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - local.get $7 - i32.load16_s - local.tee $17 - i32.store16 - local.get $0 - local.get $7 - i32.load16_s offset=2 - i32.store16 offset=2 - local.get $0 - local.get $17 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $17 - local.get $17 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $17 - local.get $17 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $17 - local.get $17 - i32.const 16 - i32.shr_u - i32.xor - local.get $10 - i32.and - i32.const 2 - i32.shl - local.get $11 - i32.add - local.tee $17 - i32.load - i32.store offset=4 - local.get $17 - local.get $0 - i32.store - local.get $0 - i32.const 8 - i32.add - local.set $0 - end - local.get $7 - i32.const 8 - i32.add - local.set $7 - br $while-continue|018 - end - end - local.get $14 - local.get $11 - i32.store - local.get $11 - if - local.get $14 - local.get $11 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - local.get $10 - i32.store offset=4 - local.get $14 - local.get $2 - i32.store offset=8 + local.tee $3 local.get $2 - if - local.get $14 - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - local.get $9 - i32.store offset=12 - local.get $14 - local.get $14 + i32.store16 + local.get $3 + local.get $5 + i32.store16 offset=2 + local.get $1 + local.get $1 i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=20 + local.get $3 + local.get $1 + i32.load + local.get $1 + i32.load offset=4 + local.get $16 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $14 - i32.load offset=8 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $13 + local.get $12 + i32.const 20 + i32.sub local.tee $0 - i32.store - local.get $14 - local.get $14 - i32.load offset=16 - local.tee $2 + local.get $0 + call $~lib/map/Map#set + local.get $6 i32.const 1 i32.add - i32.store offset=16 + local.set $1 + br $for-loop|4 + end + end + local.get $7 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $13 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|6 + local.get $1 + i32.extend16_s + i32.const 50 + i32.lt_s + if + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $1 + local.tee $0 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u local.get $2 - i32.const 3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 i32.shl - local.get $0 i32.add - local.tee $0 - local.get $5 - i32.store16 - local.get $0 - local.get $6 - i32.store16 offset=2 - local.get $14 - local.get $14 - i32.load offset=20 - i32.const 1 + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find17 + loop $while-continue|018 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find17 + local.get $2 + i32.const -2 + i32.and + local.set $3 + br $while-continue|018 + end + end + i32.const 0 + local.set $3 + end + local.get $3 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#get + local.get $1 + i32.extend16_s + i32.const 20 i32.add - i32.store offset=20 - local.get $0 - local.get $14 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#delete + local.get $9 i32.load - local.get $14 + local.get $9 i32.load offset=4 - local.get $8 + local.get $1 + local.tee $0 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor i32.and i32.const 2 i32.shl i32.add - local.tee $2 i32.load - i32.store offset=4 - local.get $2 - 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 $15 - local.get $16 - i32.const 20 - i32.sub - local.tee $0 - local.get $0 - call $~lib/map/Map#set - local.get $1 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 - end - end - local.get $14 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $15 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|6 - local.get $0 - i32.extend16_s - i32.const 50 - i32.lt_s - if - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $0 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find20 - loop $while-continue|021 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $1 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load16_u - local.get $0 - i32.const 65535 + local.set $3 + block $__inlined_func$~lib/map/Map#find20 + loop $while-continue|021 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find20 - local.get $1 - i32.const -2 - i32.and - local.set $5 - br $while-continue|021 - end - end - i32.const 0 - local.set $5 - end - local.get $5 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.extend16_s - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $0 - call $~lib/map/Map#delete - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $0 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find23 - loop $while-continue|024 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $1 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load16_u - local.get $0 - i32.const 65535 + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find20 + local.get $2 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|021 end - br_if $__inlined_func$~lib/map/Map#find23 - local.get $1 - i32.const -2 - i32.and - local.set $5 - br $while-continue|024 end + i32.const 0 + local.set $3 end - i32.const 0 - local.set $5 - end - local.get $5 - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|6 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|6 end - end - local.get $4 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|8 - local.get $0 - i32.extend16_s + local.get $9 + i32.load offset=20 i32.const 50 - i32.lt_s + i32.ne if - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $0 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|8 local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find26 - loop $while-continue|027 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $1 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load16_u - local.get $0 - i32.const 65535 + i32.extend16_s + i32.const 50 + i32.lt_s + if + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $1 + local.tee $0 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find23 + loop $while-continue|024 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 i32.and - i32.eq + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find23 + local.get $2 + i32.const -2 + i32.and + local.set $3 + br $while-continue|024 end - br_if $__inlined_func$~lib/map/Map#find26 - local.get $1 - i32.const -2 - i32.and - local.set $5 - br $while-continue|027 end + i32.const 0 + local.set $3 end - i32.const 0 - local.set $5 - end - local.get $5 - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $0 - local.get $0 - i32.extend16_s - local.tee $1 - i32.const 10 - i32.add - call $~lib/map/Map#set - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find29 - loop $while-continue|030 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $1 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load16_u - local.get $0 - i32.const 65535 + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + local.get $1 + i32.extend16_s + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $1 + local.tee $0 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find26 + loop $while-continue|027 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 i32.and - i32.eq + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find26 + local.get $2 + i32.const -2 + i32.and + local.set $3 + br $while-continue|027 end - br_if $__inlined_func$~lib/map/Map#find29 - local.get $1 - i32.const -2 - i32.and - local.set $5 - br $while-continue|030 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - local.set $5 - end - local.get $5 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $0 - call $~lib/map/Map#delete - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $0 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find32 - loop $while-continue|033 - local.get $5 - if - local.get $5 - i32.load offset=8 - local.tee $1 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load16_u - local.get $0 - i32.const 65535 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#delete + local.get $9 + i32.load + local.get $9 + i32.load offset=4 + local.get $1 + local.tee $0 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find29 + loop $while-continue|030 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 i32.and - i32.eq + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find29 + local.get $2 + i32.const -2 + i32.and + local.set $3 + br $while-continue|030 end - br_if $__inlined_func$~lib/map/Map#find32 - local.get $1 - i32.const -2 - i32.and - local.set $5 - br $while-continue|033 end + i32.const 0 + local.set $3 end - i32.const 0 - local.set $5 - end - local.get $5 - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|8 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|8 end + local.get $9 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/map/Map#clear + local.get $9 + i32.load offset=20 + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $4 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $4 - call $~lib/map/Map#clear - local.get $4 - i32.load offset=20 - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end i32.const 18432 i32.const 18480 @@ -9607,7 +9692,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -9623,7 +9708,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 @@ -9633,29 +9718,27 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $7 i32.ne if - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $4 i32.load16_u local.tee $8 i32.store16 local.get $2 - local.get $5 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 local.get $8 - i32.const 65535 - i32.and i32.const -1028477379 i32.mul i32.const 374761395 @@ -9665,29 +9748,29 @@ 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 $4 + local.get $5 i32.add local.tee $8 i32.load @@ -9700,20 +9783,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 12 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -9742,69 +9825,69 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if local.get $0 - local.get $0 + local.tee $1 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 - i32.load16_u local.get $1 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $2 + local.get $0 i32.const -2 i32.and local.set $0 @@ -9812,8 +9895,9 @@ end end i32.const 0 + local.set $1 end - local.tee $0 + local.get $1 i32.eqz if i32.const 1616 @@ -9823,58 +9907,57 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 ) (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -9891,7 +9974,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -9900,8 +9982,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -9972,98 +10055,102 @@ (local $15 i32) (local $16 i32) (local $17 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 + (local $18 i32) + (local $19 i32) + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i64.const 0 - i64.store offset=8 - local.get $4 - i32.const 0 - i32.store offset=16 - local.get $4 - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - local.get $5 - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store - local.get $11 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store - local.get $5 - if - local.get $11 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store local.get $5 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $11 - i32.const 3 - i32.store offset=4 - local.get $11 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - if - local.get $11 + i64.const 0 + i64.store offset=8 local.get $5 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $11 - i32.const 4 - i32.store offset=12 - local.get $11 - i32.const 0 - i32.store offset=16 - 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 $4 - local.get $11 - i32.store - loop $for-loop|1 + i32.const 0 + i32.store offset=16 + local.get $5 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + local.get $2 + i32.const 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $9 + i32.store + local.get $9 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store + local.get $9 + local.set $2 + local.get $3 + if + local.get $2 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 3 + i32.store offset=4 local.get $2 - i32.const 65535 - i32.and - i32.const 100 - i32.lt_u + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=8 + local.get $3 if - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $11 + local.get $2 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $2 + i32.const 4 + i32.store offset=12 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + 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 + i32.store + loop $for-loop|1 + local.get $0 + i32.const 65535 + i32.and + i32.const 100 + i32.lt_u + if + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $4 + i32.load offset=4 + local.get $0 + local.tee $3 i32.const 65535 i32.and i32.const -1028477379 @@ -10098,60 +10185,60 @@ i32.shl i32.add i32.load - local.set $5 - loop $while-continue|0 - local.get $5 - if - local.get $5 - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $6 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|0 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find local.get $5 - i32.load16_u - local.get $4 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|0 end - br_if $__inlined_func$~lib/map/Map#find - drop - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|0 end + i32.const 0 + local.set $6 end - i32.const 0 - end - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $2 - local.get $2 - i32.const 65535 - i32.and - i32.const 10 - i32.add - call $~lib/map/Map#set - block $__inlined_func$~lib/map/Map#find1 (result i32) - local.get $11 + local.get $6 + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $4 + i32.load offset=4 + local.get $0 + local.tee $3 i32.const 65535 i32.and i32.const -1028477379 @@ -10186,204 +10273,100 @@ i32.shl i32.add i32.load - local.set $5 - loop $while-continue|02 - local.get $5 - if - local.get $5 - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $6 + block $__inlined_func$~lib/map/Map#find1 + loop $while-continue|02 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find1 local.get $5 - i32.load16_u - local.get $4 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|02 end - br_if $__inlined_func$~lib/map/Map#find1 - drop - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|02 end + i32.const 0 + local.set $6 end + local.get $6 i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $2 - call $~lib/map/Map#get - local.get $2 - i32.const 65535 - i32.and - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - local.get $11 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $2 - loop $for-loop|3 - local.get $2 - i32.const 65535 - i32.and - i32.const 100 - i32.lt_u - if - block $__inlined_func$~lib/map/Map#find4 (result i32) - local.get $11 - i32.load - local.get $11 - i32.load offset=4 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $2 - local.tee $4 + local.get $0 + call $~lib/map/Map#get + local.get $0 i32.const 65535 i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl + i32.const 10 i32.add - i32.load - local.set $5 - loop $while-continue|05 - local.get $5 - if - local.get $5 - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load16_u - local.get $4 - i32.const 65535 - i32.and - i32.eq - end - br_if $__inlined_func$~lib/map/Map#find4 - drop - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|05 - end + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable end - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $11 - local.get $2 - call $~lib/map/Map#get - local.get $2 + end + local.get $2 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 i32.const 65535 i32.and - i32.const 10 - i32.add - i32.ne + i32.const 100 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $2 - local.get $2 - i32.const 65535 - i32.and - i32.const 20 - i32.add - call $~lib/map/Map#set - block $__inlined_func$~lib/map/Map#find7 (result i32) - local.get $11 + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $4 + i32.load offset=4 + local.get $0 + local.tee $3 i32.const 65535 i32.and i32.const -1028477379 @@ -10418,338 +10401,450 @@ i32.shl i32.add i32.load - local.set $5 - loop $while-continue|08 - local.get $5 - if - local.get $5 - local.get $5 - i32.load offset=8 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $6 + block $__inlined_func$~lib/map/Map#find4 + loop $while-continue|05 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find4 local.get $5 - i32.load16_u - local.get $4 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $6 + br $while-continue|05 end - br_if $__inlined_func$~lib/map/Map#find7 - drop - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|08 end - end - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $2 - call $~lib/map/Map#get - local.get $2 - i32.const 65535 - i32.and - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|3 - end - end - local.get $11 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $11 - i32.load offset=8 - local.set $5 - local.get $11 - i32.load offset=16 - local.tee $6 - local.set $7 - local.get $2 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $8 - i64.const 0 - i64.store - local.get $8 - i32.const 16 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $12 - i32.store - local.get $12 - i32.const 0 - i32.store - local.get $12 - i32.const 0 - i32.store offset=4 - local.get $12 - i32.const 0 - i32.store offset=8 - local.get $12 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 65 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 8 - local.get $7 - i32.const 8 - i32.gt_u - select - i32.const 1 - i32.shl - local.tee $8 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $9 - i32.store offset=4 - local.get $9 - local.get $8 - call $~lib/memory/memory.fill - local.get $12 - local.get $9 - i32.store - local.get $9 - if - local.get $12 - local.get $9 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $12 - local.get $9 - 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 $2 - local.get $12 - i32.store - loop $for-loop|0 - local.get $1 - local.get $6 - i32.lt_s - if - local.get $1 - i32.const 12 - i32.mul - local.get $5 - i32.add - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $12 - local.get $3 + i32.const 0 + local.set $6 + end + local.get $6 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $2 - i32.load16_u - call $~lib/array/Array#__set - local.get $3 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.const 65535 + i32.and + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + 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 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + local.tee $3 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + block $__inlined_func$~lib/map/Map#find7 + loop $while-continue|08 + local.get $6 + if + local.get $6 + i32.load offset=8 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $6 + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find7 + local.get $5 + i32.const -2 + i32.and + local.set $6 + br $while-continue|08 + end + end + i32.const 0 + local.set $6 + end + local.get $6 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/map/Map#get + local.get $0 + i32.const 65535 + i32.and + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 + br $for-loop|3 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 end - end - local.get $12 - local.get $3 - i32.const 1 - i32.const 0 - call $~lib/array/ensureCapacity - local.get $12 - local.get $3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $11 - call $~lib/map/Map#values - local.tee $13 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - local.get $2 - i32.const 24 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $14 - i32.store - local.get $14 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 - i32.store - local.get $2 - if - local.get $14 local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - i32.const 3 - i32.store offset=4 - local.get $14 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 - i32.store offset=8 - local.get $2 - if - local.get $14 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $10 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $7 + i32.const 0 + i32.store local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - i32.const 4 - i32.store offset=12 - local.get $14 - i32.const 0 - i32.store offset=16 - 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 $14 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - call $~lib/map/Map#constructor - local.tee $15 - i32.store offset=16 - loop $for-loop|4 - local.get $12 - i32.load offset=12 + i32.load offset=8 + local.set $6 + local.get $2 + i32.load offset=16 + local.tee $5 + local.set $3 + local.get $7 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store local.get $0 - i32.gt_s + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $3 + i32.const 536870910 + i32.gt_u if - local.get $12 - i32.load offset=12 + i32.const 1456 + i32.const 1728 + i32.const 65 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 8 + local.get $3 + i32.const 8 + i32.gt_u + select + i32.const 1 + i32.shl + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/memory/memory.fill + local.get $8 + local.get $0 + i32.store + local.get $0 + if + local.get $8 local.get $0 - i32.le_u + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 + i32.store offset=4 + local.get $8 + local.get $2 + i32.store offset=8 + local.get $8 + 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 $8 + i32.store + loop $for-loop|0 + local.get $5 + local.get $19 + i32.gt_s if - i32.const 1248 - i32.const 1728 - i32.const 107 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $19 + i32.const 12 + i32.mul + local.get $6 + i32.add + local.tee $2 + i32.load offset=8 + i32.const 1 + 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 $2 + i32.load16_u + call $~lib/array/Array#__set + end + local.get $19 + i32.const 1 + i32.add + local.set $19 + br $for-loop|0 end - local.get $12 - i32.load offset=4 + end + local.get $8 + local.get $4 + i32.const 1 + i32.const 0 + call $~lib/array/ensureCapacity + local.get $8 + local.get $4 + 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 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $9 + call $~lib/map/Map#values + local.tee $17 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + 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 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + local.get $7 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store + local.get $0 + if + local.get $7 local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $2 - local.get $13 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $7 + i32.const 3 + i32.store offset=4 + local.get $7 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=8 + local.get $0 + if + local.get $7 local.get $0 - call $~lib/array/Array#__get - local.set $16 - block $__inlined_func$~lib/map/Map#find10 (result i32) - local.get $11 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $7 + i32.const 4 + i32.store offset=12 + local.get $7 + i32.const 0 + i32.store offset=16 + local.get $7 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + call $~lib/map/Map#constructor + local.tee $13 + i32.store offset=16 + loop $for-loop|4 + local.get $8 + i32.load offset=12 + local.get $1 + i32.gt_s + if + local.get $1 + local.tee $6 + local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 107 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $2 + local.get $17 + local.get $6 + call $~lib/array/Array#__get + local.set $12 + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 local.get $2 - local.tee $1 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -10760,24 +10855,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $1 i32.const 15 i32.shr_u - local.get $3 + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $1 i32.const 13 i32.shr_u - local.get $3 + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $1 i32.const 16 i32.shr_u - local.get $3 + local.get $1 i32.xor i32.and i32.const 2 @@ -10785,54 +10880,56 @@ i32.add i32.load local.set $3 - loop $while-continue|011 - local.get $3 - if - local.get $3 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 local.get $3 - i32.load offset=8 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + if local.get $3 - i32.load16_u + i32.load offset=8 + local.tee $1 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find10 local.get $1 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|011 end - br_if $__inlined_func$~lib/map/Map#find10 - drop - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|011 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - block $__inlined_func$~lib/map/Map#find13 (result i32) - local.get $11 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $16 + local.get $12 i32.const 20 i32.sub - local.tee $3 + local.tee $1 i32.const 65535 i32.and i32.const -1028477379 @@ -10843,440 +10940,446 @@ 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 $1 - loop $while-continue|014 - local.get $1 - if - local.get $1 - local.get $1 - i32.load offset=8 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - i32.load16_u + local.set $3 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $0 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find13 + local.get $0 + i32.const -2 + i32.and + local.set $3 + br $while-continue|014 + end + end + i32.const 0 + local.set $3 + end + local.get $3 + i32.const 0 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + 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 2020 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + local.set $5 + local.get $7 + local.tee $1 + i32.load + local.get $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + local.tee $16 + local.get $1 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find + loop $while-continue|015 + local.get $3 + if local.get $3 - i32.const 65535 + i32.load offset=4 + local.tee $0 + i32.const 1 i32.and - i32.eq + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $5 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find + local.get $0 + i32.const -2 + i32.and + local.set $3 + br $while-continue|015 end - br_if $__inlined_func$~lib/map/Map#find13 - drop - local.get $4 - i32.const -2 - i32.and - local.set $1 - br $while-continue|014 end + i32.const 0 + local.set $3 end - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.set $3 - local.get $14 - i32.load - local.get $2 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - local.tee $6 - local.get $14 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find - loop $while-continue|015 + local.get $3 + if + local.get $3 + local.get $5 + i32.store16 offset=2 + else + local.get $1 + i32.load offset=16 local.get $1 + i32.load offset=12 + i32.eq if local.get $1 - i32.load offset=4 local.tee $4 - i32.const 1 - i32.and + i32.load offset=20 + local.get $1 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s if (result i32) - i32.const 0 + local.get $4 + i32.load offset=4 else - local.get $1 - i32.load16_u - local.get $3 - i32.const 65535 - i32.and - i32.eq + local.get $4 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end - br_if $__inlined_func$~lib/map/Map#find - local.get $4 - i32.const -2 - i32.and - local.set $1 - br $while-continue|015 - end - end - i32.const 0 - local.set $1 - end - local.get $1 - if - local.get $1 - local.get $3 - i32.store16 offset=2 - else - local.get $14 - i32.load offset=16 - local.get $14 - i32.load offset=12 - i32.eq - if - local.get $14 - i32.load offset=20 - local.get $14 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $14 - i32.load offset=4 - else - local.get $14 - i32.load offset=4 + local.set $18 + 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 2020 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + local.get $18 i32.const 1 + i32.add + local.tee $0 + i32.const 2 i32.shl - i32.const 1 - i32.or - end - local.set $8 - 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 2020 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - local.get $8 - i32.const 1 - i32.add - local.tee $1 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - local.get $14 - i32.load offset=8 - local.tee $5 - local.get $14 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $10 - local.get $4 - local.set $1 - loop $while-continue|0216 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $1 - local.get $5 - i32.load16_u - local.tee $17 - i32.store16 - local.get $1 - local.get $5 - i32.load16_u offset=2 - i32.store16 offset=2 - local.get $1 - local.get $17 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $17 - local.get $17 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $17 - local.get $17 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $17 - local.get $17 - i32.const 16 - i32.shr_u - i32.xor - local.get $8 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $15 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + local.get $4 + i32.load offset=8 + local.tee $19 + local.get $4 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $14 + local.get $3 + local.set $0 + loop $while-continue|00 + local.get $14 + local.get $19 + i32.ne + if + local.get $19 + i32.load offset=4 + i32.const 1 i32.and - i32.const 2 - i32.shl - local.get $9 - i32.add - local.tee $17 - i32.load - i32.store offset=4 - local.get $17 - local.get $1 - i32.store - local.get $1 + i32.eqz + if + local.get $0 + local.get $19 + i32.load16_u + local.tee $10 + i32.store16 + local.get $0 + local.get $19 + i32.load16_u offset=2 + i32.store16 offset=2 + local.get $0 + local.get $10 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $10 + local.get $10 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $10 + local.get $10 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $10 + local.get $10 + i32.const 16 + i32.shr_u + i32.xor + local.get $18 + i32.and + i32.const 2 + i32.shl + local.get $11 + i32.add + local.tee $10 + i32.load + i32.store offset=4 + local.get $10 + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.add + local.set $0 + end + local.get $19 i32.const 8 i32.add - local.set $1 + local.set $19 + br $while-continue|00 end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|0216 end - end - local.get $14 - local.get $9 - i32.store - local.get $9 - if - local.get $14 - local.get $9 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $14 - local.get $8 - i32.store offset=4 - local.get $14 - local.get $4 - i32.store offset=8 - local.get $4 - if - local.get $14 local.get $4 - call $byn-split-outlined-A$~lib/rt/itcms/__link + local.get $11 + i32.store + local.get $11 + if + local.get $1 + local.get $11 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $18 + i32.store offset=4 + local.get $1 + local.get $3 + i32.store offset=8 + local.get $3 + if + local.get $1 + local.get $3 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $1 + local.get $15 + i32.store offset=12 + local.get $1 + local.get $1 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer end - local.get $14 - local.get $7 - i32.store offset=12 - local.get $14 - local.get $14 - i32.load offset=20 - i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $1 + i32.load offset=8 + local.tee $3 + i32.store + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $0 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=16 + local.get $0 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $3 + local.get $2 + i32.store16 + local.get $3 + local.get $5 + i32.store16 offset=2 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $3 + local.get $1 + i32.load + local.get $1 + i32.load offset=4 + local.get $16 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $14 - i32.load offset=8 - local.tee $1 - i32.store - local.get $14 - local.get $14 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $4 - i32.const 3 - i32.shl - local.get $1 - i32.add - local.tee $1 - local.get $2 - i32.store16 - local.get $1 - local.get $3 - i32.store16 offset=2 - local.get $14 - local.get $14 - i32.load offset=20 - i32.const 1 + i32.const 4 i32.add - i32.store offset=20 - local.get $1 - local.get $14 - i32.load - local.get $14 - i32.load offset=4 + global.set $~lib/memory/__stack_pointer + local.get $13 + local.get $12 + i32.const 20 + i32.sub + local.tee $0 + local.get $0 + call $~lib/map/Map#set local.get $6 - i32.and - i32.const 2 - i32.shl + i32.const 1 i32.add - local.tee $2 - i32.load - i32.store offset=4 - local.get $2 - local.get $1 - i32.store + local.set $1 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $15 - local.get $16 - i32.const 20 - i32.sub - local.tee $1 - local.get $1 - call $~lib/map/Map#set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 end - end - local.get $14 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $15 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|6 - local.get $0 - i32.const 65535 - i32.and - i32.const 50 - i32.lt_u + local.get $7 + i32.load offset=20 + i32.const 100 + i32.ne if - block $__inlined_func$~lib/map/Map#find18 (result i32) - local.get $11 + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $13 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|6 + local.get $1 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + if + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -11311,73 +11414,75 @@ i32.shl i32.add i32.load - local.set $2 - loop $while-continue|019 - local.get $2 - if - local.get $2 - local.get $2 - i32.load offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $3 + block $__inlined_func$~lib/map/Map#find17 + loop $while-continue|018 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find17 local.get $2 - i32.load16_u - local.get $1 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|018 end - br_if $__inlined_func$~lib/map/Map#find18 - drop - local.get $3 - i32.const -2 - i32.and - local.set $2 - br $while-continue|019 end + i32.const 0 + local.set $3 end + local.get $3 i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $0 - call $~lib/map/Map#get - local.get $0 - i32.const 65535 - i32.and - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $0 - call $~lib/map/Map#delete - block $__inlined_func$~lib/map/Map#find21 (result i32) - local.get $11 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#get + local.get $1 + i32.const 65535 + i32.and + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#delete + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -11412,80 +11517,80 @@ i32.shl i32.add i32.load - local.set $2 - loop $while-continue|022 - local.get $2 - if - local.get $2 - local.get $2 - i32.load offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $3 + block $__inlined_func$~lib/map/Map#find20 + loop $while-continue|021 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find20 local.get $2 - i32.load16_u - local.get $1 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|021 end - br_if $__inlined_func$~lib/map/Map#find21 - drop - local.get $3 - i32.const -2 - i32.and - local.set $2 - br $while-continue|022 end + i32.const 0 + local.set $3 end - i32.const 0 - end - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|6 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|6 end - end - local.get $11 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|8 - local.get $0 - i32.const 65535 - i32.and + local.get $9 + i32.load offset=20 i32.const 50 - i32.lt_u + i32.ne if - block $__inlined_func$~lib/map/Map#find24 (result i32) - local.get $11 + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + loop $for-loop|8 + local.get $1 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + if + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -11520,60 +11625,60 @@ i32.shl i32.add i32.load - local.set $2 - loop $while-continue|025 - local.get $2 - if - local.get $2 - local.get $2 - i32.load offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $3 + block $__inlined_func$~lib/map/Map#find23 + loop $while-continue|024 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find23 local.get $2 - i32.load16_u - local.get $1 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|024 end - br_if $__inlined_func$~lib/map/Map#find24 - drop - local.get $3 - i32.const -2 - i32.and - local.set $2 - br $while-continue|025 end + i32.const 0 + local.set $3 end - i32.const 0 - end - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $0 - local.get $0 - i32.const 65535 - i32.and - i32.const 10 - i32.add - call $~lib/map/Map#set - block $__inlined_func$~lib/map/Map#find27 (result i32) - local.get $11 + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const 10 + i32.add + call $~lib/map/Map#set + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -11608,56 +11713,58 @@ i32.shl i32.add i32.load - local.set $2 - loop $while-continue|028 - local.get $2 - if - local.get $2 - local.get $2 - i32.load offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $3 + block $__inlined_func$~lib/map/Map#find26 + loop $while-continue|027 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find26 local.get $2 - i32.load16_u - local.get $1 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|027 end - br_if $__inlined_func$~lib/map/Map#find27 - drop - local.get $3 - i32.const -2 - i32.and - local.set $2 - br $while-continue|028 end - end - i32.const 0 - end - i32.eqz - if + i32.const 0 + local.set $3 + end + local.get $3 i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $11 - local.get $0 - call $~lib/map/Map#delete - block $__inlined_func$~lib/map/Map#find30 (result i32) - local.get $11 + i32.ne + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $9 + local.get $1 + call $~lib/map/Map#delete + local.get $9 i32.load - local.get $11 + local.get $9 i32.load offset=4 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 65535 i32.and i32.const -1028477379 @@ -11692,81 +11799,83 @@ i32.shl i32.add i32.load - local.set $2 - loop $while-continue|031 - local.get $2 - if - local.get $2 - local.get $2 - i32.load offset=8 - local.tee $3 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + local.set $3 + block $__inlined_func$~lib/map/Map#find29 + loop $while-continue|030 + local.get $3 + if + local.get $3 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $0 + i32.const 65535 + i32.and + i32.eq + end + br_if $__inlined_func$~lib/map/Map#find29 local.get $2 - i32.load16_u - local.get $1 - i32.const 65535 + i32.const -2 i32.and - i32.eq + local.set $3 + br $while-continue|030 end - br_if $__inlined_func$~lib/map/Map#find30 - drop - local.get $3 - i32.const -2 - i32.and - local.set $2 - br $while-continue|031 end + i32.const 0 + local.set $3 end - i32.const 0 - end - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $3 + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|8 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|8 end + local.get $9 + i32.load offset=20 + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + call $~lib/map/Map#clear + local.get $9 + i32.load offset=20 + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $11 - i32.load offset=20 - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $11 - call $~lib/map/Map#clear - local.get $11 - i32.load offset=20 - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end i32.const 18432 i32.const 18480 @@ -11777,65 +11886,65 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if local.get $0 - local.get $0 + local.tee $1 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $2 local.get $1 - local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $2 + local.get $0 i32.const -2 i32.and local.set $0 @@ -11843,8 +11952,9 @@ end end i32.const 0 + local.set $1 end - local.tee $0 + local.get $1 i32.eqz if i32.const 1616 @@ -11854,56 +11964,55 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 ) (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -11918,7 +12027,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -11927,8 +12035,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -12002,29 +12111,29 @@ 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 i64.const 0 i64.store offset=8 - local.get $2 + local.get $4 i32.const 0 i32.store offset=16 - local.get $2 + local.get $4 call $~lib/map/Map#constructor - local.tee $4 + local.tee $5 i32.store loop $for-loop|0 - local.get $3 + local.get $2 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 $3 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12033,22 +12142,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -12057,36 +12166,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $6 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $2 + local.get $6 if - local.get $2 + local.get $6 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 $6 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 $6 br $while-continue|0 end end i32.const 0 - local.set $2 + local.set $6 end - local.get $2 + local.get $6 if i32.const 0 i32.const 1568 @@ -12095,17 +12204,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $3 + local.get $5 + local.get $2 + local.get $2 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 $3 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12114,22 +12223,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -12138,36 +12247,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $6 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $2 + local.get $6 if - local.get $2 + local.get $6 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 $6 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 $6 br $while-continue|02 end end i32.const 0 - local.set $2 + local.set $6 end - local.get $2 + local.get $6 i32.eqz if i32.const 0 @@ -12177,10 +12286,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $3 + local.get $2 i32.const 10 i32.add i32.ne @@ -12192,14 +12301,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -12212,17 +12321,17 @@ unreachable end i32.const 0 - local.set $3 + local.set $2 loop $for-loop|1 - local.get $3 + local.get $2 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 $3 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12231,22 +12340,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -12255,36 +12364,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $6 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $2 + local.get $6 if - local.get $2 + local.get $6 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 $6 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 $6 br $while-continue|05 end end i32.const 0 - local.set $2 + local.set $6 end - local.get $2 + local.get $6 i32.eqz if i32.const 0 @@ -12294,10 +12403,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $3 + local.get $2 i32.const 10 i32.add i32.ne @@ -12309,17 +12418,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $3 + local.get $5 + local.get $2 + local.get $2 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 $3 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12328,22 +12437,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -12352,36 +12461,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $6 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $2 + local.get $6 if - local.get $2 + local.get $6 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 $6 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 $6 br $while-continue|08 end end i32.const 0 - local.set $2 + local.set $6 end - local.get $2 + local.get $6 i32.eqz if i32.const 0 @@ -12391,10 +12500,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $3 + local.get $2 i32.const 20 i32.add i32.ne @@ -12406,14 +12515,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|1 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -12426,8 +12535,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -12439,95 +12547,97 @@ local.tee $2 i32.const 0 i32.store - local.get $4 + local.get $5 i32.load offset=8 local.set $7 local.get $2 - local.get $4 + local.get $5 i32.load offset=16 - local.tee $2 + local.tee $8 call $~lib/array/Array#constructor - local.tee $3 + local.tee $4 i32.store - loop $for-loop|01 - local.get $2 - local.get $5 - i32.gt_s + loop $for-loop|02 + local.get $3 + local.get $8 + i32.lt_s if - local.get $5 + local.get $3 i32.const 12 i32.mul local.get $7 i32.add - local.tee $8 + local.tee $9 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $3 - local.get $0 - local.get $8 - i32.load - call $~lib/array/Array#__set - local.get $0 + local.get $1 + local.tee $2 i32.const 1 i32.add - local.set $0 + local.set $1 + local.get $4 + local.get $2 + local.get $9 + i32.load + call $~lib/array/Array#__set end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|01 + local.set $3 + br $for-loop|02 end end - local.get $3 - local.get $0 + local.get $4 + local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $3 - local.get $0 + 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 $3 + local.get $6 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 call $~lib/map/Map#values - local.tee $5 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $6 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $7 + local.tee $3 i32.store offset=16 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 $4 + local.get $0 + call $~lib/array/Array#__get + local.set $7 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 $4 + local.get $5 i32.load offset=4 - local.get $8 + local.get $7 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12536,22 +12646,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $6 + local.get $6 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $6 + local.get $6 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $6 + local.get $6 i32.const 16 i32.shr_u i32.xor @@ -12560,36 +12670,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $6 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $2 + local.get $6 if - local.get $2 + local.get $6 i32.load offset=8 - local.tee $0 + local.tee $9 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $8 - local.get $2 + local.get $7 + local.get $6 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $0 + local.get $9 i32.const -2 i32.and - local.set $2 + local.set $6 br $while-continue|011 end end i32.const 0 - local.set $2 + local.set $6 end - local.get $2 + local.get $6 i32.eqz if i32.const 0 @@ -12599,14 +12709,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 - local.get $9 + local.get $8 i32.const 20 i32.sub - local.tee $10 + local.tee $9 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12615,22 +12725,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $6 + local.get $6 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $6 + local.get $6 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $6 + local.get $6 i32.const 16 i32.shr_u i32.xor @@ -12639,36 +12749,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $6 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $2 + local.get $6 if - local.get $2 + local.get $6 i32.load offset=8 - local.tee $0 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $10 - local.get $2 + local.get $9 + local.get $6 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $0 + local.get $10 i32.const -2 i32.and - local.set $2 + local.set $6 br $while-continue|014 end end i32.const 0 - local.set $2 + local.set $6 end - local.get $2 + local.get $6 i32.eqz if i32.const 0 @@ -12678,25 +12788,25 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $8 - local.get $8 - call $~lib/map/Map#set + local.get $2 local.get $7 - local.get $9 + local.get $7 + call $~lib/map/Map#set + local.get $3 + local.get $8 i32.const 20 i32.sub - local.tee $0 - local.get $0 + local.tee $6 + local.get $6 call $~lib/map/Map#set - 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 $6 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -12708,7 +12818,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -12721,17 +12831,18 @@ 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 $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 - local.get $1 + local.get $0 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12764,36 +12875,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find16 loop $while-continue|017 - local.get $2 + local.get $0 if - local.get $2 + 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 $1 - local.get $2 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find16 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|017 end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -12803,7 +12914,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $1 call $~lib/map/Map#get local.get $1 @@ -12818,12 +12929,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $1 call $~lib/map/Map#delete - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $1 i32.const -1028477379 @@ -12858,36 +12969,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find19 loop $while-continue|020 - local.get $2 + local.get $0 if - local.get $2 + 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 $1 - local.get $2 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|020 end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if i32.const 0 i32.const 1568 @@ -12899,11 +13010,11 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -12916,17 +13027,18 @@ 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 $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 - local.get $1 + local.get $0 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12959,36 +13071,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find22 loop $while-continue|023 - local.get $2 + local.get $0 if - local.get $2 + 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 $1 - local.get $2 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|023 end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if i32.const 0 i32.const 1568 @@ -12997,15 +13109,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $1 local.get $1 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 $1 i32.const -1028477379 @@ -13040,36 +13152,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find25 loop $while-continue|026 - local.get $2 + local.get $0 if - local.get $2 + 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 $1 - local.get $2 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|026 end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 i32.eqz if i32.const 0 @@ -13079,12 +13191,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 local.get $1 call $~lib/map/Map#delete - local.get $4 + local.get $5 i32.load - local.get $4 + local.get $5 i32.load offset=4 local.get $1 i32.const -1028477379 @@ -13119,36 +13231,36 @@ i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find28 loop $while-continue|029 - local.get $2 + local.get $0 if - local.get $2 + 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 $1 - local.get $2 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|029 end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if i32.const 0 i32.const 1568 @@ -13160,11 +13272,11 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|4 end end - local.get $4 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -13176,9 +13288,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 call $~lib/map/Map#clear - local.get $4 + local.get $5 i32.load offset=20 if i32.const 0 @@ -13236,7 +13348,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -13252,7 +13364,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 @@ -13262,23 +13374,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $7 i32.ne if - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $4 i32.load local.tee $8 i32.store local.get $2 - local.get $5 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 @@ -13292,29 +13404,29 @@ 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 $4 + local.get $5 i32.add local.tee $8 i32.load @@ -13327,20 +13439,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 12 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -13369,65 +13481,65 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if local.get $0 - local.get $0 + local.tee $1 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $2 local.get $1 - local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $2 + local.get $0 i32.const -2 i32.and local.set $0 @@ -13435,8 +13547,9 @@ end end i32.const 0 + local.set $1 end - local.tee $0 + local.get $1 i32.eqz if i32.const 1616 @@ -13446,56 +13559,55 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 ) (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -13510,7 +13622,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -13519,8 +13630,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -13590,95 +13702,94 @@ (local $14 i32) (local $15 i32) (local $16 i32) - (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 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 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 24 i32.const 17 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 $6 + local.tee $4 i32.store - local.get $6 + local.get $4 if - local.get $3 - local.get $6 + local.get $11 + local.get $4 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 $6 + local.tee $4 i32.store offset=8 - local.get $6 + local.get $4 if - local.get $3 - local.get $6 + local.get $11 + local.get $4 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 $5 local.get $3 + local.get $11 i32.store loop $for-loop|0 - local.get $4 + local.get $2 i32.const 100 i32.lt_u if - local.get $3 + local.get $11 i32.load - local.get $3 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13687,22 +13798,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor @@ -13711,36 +13822,36 @@ i32.shl i32.add i32.load - local.set $5 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.load offset=8 - local.tee $6 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $2 local.get $4 - local.get $5 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $6 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $5 + local.set $4 end - local.get $5 + local.get $4 if i32.const 0 i32.const 1568 @@ -13749,17 +13860,17 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 - local.get $4 + local.get $11 + local.get $2 + local.get $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $11 i32.load - local.get $3 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13768,22 +13879,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor @@ -13792,36 +13903,36 @@ i32.shl i32.add i32.load - local.set $5 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.load offset=8 - local.tee $6 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $2 local.get $4 - local.get $5 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $6 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $5 + local.set $4 end - local.get $5 + local.get $4 i32.eqz if i32.const 0 @@ -13831,10 +13942,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 + local.get $11 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.const 10 i32.add i32.ne @@ -13846,14 +13957,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|0 end end - local.get $3 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -13866,17 +13977,17 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|1 - local.get $4 + local.get $2 i32.const 100 i32.lt_u if - local.get $3 + local.get $11 i32.load - local.get $3 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13885,22 +13996,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor @@ -13909,36 +14020,36 @@ i32.shl i32.add i32.load - local.set $5 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.load offset=8 - local.tee $6 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $2 local.get $4 - local.get $5 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $6 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $5 + local.set $4 end - local.get $5 + local.get $4 i32.eqz if i32.const 0 @@ -13948,10 +14059,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 + local.get $11 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.const 10 i32.add i32.ne @@ -13963,17 +14074,17 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 - local.get $4 + local.get $11 + local.get $2 + local.get $2 i32.const 20 i32.add call $~lib/map/Map#set - local.get $3 + local.get $11 i32.load - local.get $3 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13982,22 +14093,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u i32.xor @@ -14006,36 +14117,36 @@ i32.shl i32.add i32.load - local.set $5 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.load offset=8 - local.tee $6 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $2 local.get $4 - local.get $5 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $6 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $5 + local.set $4 end - local.get $5 + local.get $4 i32.eqz if i32.const 0 @@ -14045,10 +14156,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $4 + local.get $11 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.const 20 i32.add i32.ne @@ -14060,14 +14171,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end - local.get $3 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -14081,57 +14192,54 @@ end global.get $~lib/memory/__stack_pointer local.tee $4 - local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $3 i32.const 0 i32.store - local.get $3 - local.tee $4 + local.get $11 i32.load offset=8 + local.set $6 + local.get $11 + i32.load offset=16 local.set $7 local.get $3 - i32.load offset=16 - local.tee $8 - local.set $9 - local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 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 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 0 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.store offset=8 - local.get $3 + local.get $2 i32.const 0 i32.store offset=12 - local.get $9 + local.get $7 i32.const 268435455 i32.gt_u if @@ -14143,98 +14251,100 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $7 i32.const 8 - local.get $9 + local.get $7 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $10 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $9 i32.store offset=4 - local.get $11 - local.get $10 + local.get $9 + local.get $8 call $~lib/memory/memory.fill - local.get $3 - local.get $11 + local.get $2 + local.get $9 i32.store - local.get $11 + local.get $9 if - local.get $3 - local.get $11 + local.get $2 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 - local.get $11 + local.get $2 + local.get $9 i32.store offset=4 - local.get $3 - local.get $10 + local.get $2 + local.get $8 i32.store offset=8 - local.get $3 - local.get $9 + local.get $2 + 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 $6 local.get $3 + local.get $2 i32.store - loop $for-loop|01 - local.get $2 - local.get $8 + loop $for-loop|02 + local.get $5 + local.get $7 i32.lt_s if - local.get $2 + local.get $5 i32.const 12 i32.mul - local.get $7 + local.get $6 i32.add - local.tee $6 + local.tee $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $3 - local.get $1 - local.get $6 - i32.load - call $~lib/array/Array#__set local.get $1 + local.tee $3 i32.const 1 i32.add local.set $1 + local.get $2 + local.get $3 + local.get $8 + i32.load + call $~lib/array/Array#__set end - local.get $2 + local.get $5 i32.const 1 i32.add - local.set $2 - br $for-loop|01 + local.set $5 + br $for-loop|02 end end - local.get $3 + local.get $2 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $3 + 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 $3 + local.get $4 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $11 call $~lib/map/Map#values - local.tee $13 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14244,70 +14354,70 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + 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 19 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $12 i32.store - local.get $14 + local.get $12 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 $14 - local.get $2 + local.get $12 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $14 + local.get $12 i32.const 3 i32.store offset=4 - local.get $14 + local.get $12 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 $14 - local.get $2 + local.get $12 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $14 + local.get $12 i32.const 4 i32.store offset=12 - local.get $14 + local.get $12 i32.const 0 i32.store offset=16 - local.get $14 + 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 $14 + local.get $12 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $15 + local.tee $9 i32.store offset=16 loop $for-loop|2 - local.get $3 + local.get $2 i32.load offset=12 local.get $0 i32.gt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.load offset=12 i32.ge_u if @@ -14318,24 +14428,23 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load offset=4 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $5 - local.get $13 + local.set $3 + local.get $7 local.get $1 call $~lib/array/Array#__get - local.set $16 - local.get $4 + local.set $8 + local.get $11 i32.load - local.get $4 + local.get $11 i32.load offset=4 - local.get $5 - local.tee $6 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14368,36 +14477,36 @@ i32.shl i32.add i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find12 - loop $while-continue|013 - local.get $0 + local.set $4 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 + local.get $4 if - local.get $0 + local.get $4 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 - local.get $0 + local.get $3 + local.get $4 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find12 - local.get $2 + br_if $__inlined_func$~lib/map/Map#find10 + local.get $0 i32.const -2 i32.and - local.set $0 - br $while-continue|013 + local.set $4 + br $while-continue|011 end end i32.const 0 - local.set $0 + local.set $4 end - local.get $0 + local.get $4 i32.eqz if i32.const 0 @@ -14407,14 +14516,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $11 i32.load - local.get $4 + local.get $11 i32.load offset=4 - local.get $16 + local.get $8 i32.const 20 i32.sub - local.tee $2 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14423,22 +14532,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u i32.xor @@ -14447,36 +14556,36 @@ i32.shl i32.add i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find15 - loop $while-continue|016 - local.get $0 + local.set $4 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 + local.get $4 if - local.get $0 + local.get $4 i32.load offset=8 - local.tee $7 + local.tee $5 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#find15 - local.get $7 + br_if $__inlined_func$~lib/map/Map#find13 + local.get $5 i32.const -2 i32.and - local.set $0 - br $while-continue|016 + local.set $4 + br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $4 end - local.get $0 + local.get $4 i32.eqz if i32.const 0 @@ -14493,13 +14602,14 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $14 + local.get $12 i32.load - local.get $5 + local.get $3 + local.tee $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14509,57 +14619,56 @@ 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 $14 + local.tee $6 + local.get $12 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 - block $__inlined_func$~lib/map/Map#find17 - loop $while-continue|018 - local.get $2 + local.set $0 + block $__inlined_func$~lib/map/Map#find15 + loop $while-continue|016 + local.get $0 if - local.get $2 - local.tee $0 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $4 local.get $0 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find17 - local.get $2 + br_if $__inlined_func$~lib/map/Map#find15 + local.get $5 i32.const -2 i32.and - local.set $2 - br $while-continue|018 + local.set $0 + br $while-continue|016 end end i32.const 0 @@ -14568,18 +14677,18 @@ local.get $0 if local.get $0 - local.get $6 + local.get $3 i32.store offset=4 else - local.get $14 + local.get $12 i32.load offset=16 - local.get $14 + local.get $12 i32.load offset=12 i32.eq if - local.get $14 + local.get $12 i32.load offset=20 - local.get $14 + local.get $12 i32.load offset=12 i32.const 3 i32.mul @@ -14587,17 +14696,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $14 + local.get $12 i32.load offset=4 else - local.get $14 + local.get $12 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $10 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14605,20 +14714,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $10 + local.get $13 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $14 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -14626,45 +14735,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $9 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $4 i32.store offset=4 - local.get $14 + local.get $12 i32.load offset=8 - local.tee $7 - local.get $14 + local.tee $10 + local.get $12 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $12 - local.get $2 + local.set $15 + local.get $4 local.set $0 - loop $while-continue|019 - local.get $7 - local.get $12 + loop $while-continue|00 + local.get $10 + local.get $15 i32.ne if - local.get $7 + local.get $10 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $7 + local.get $10 i32.load - local.tee $17 + local.tee $16 i32.store local.get $0 - local.get $7 + local.get $10 i32.load offset=4 i32.store offset=4 local.get $0 - local.get $17 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14673,35 +14782,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $17 - local.get $17 + local.tee $16 i32.const 15 i32.shr_u + local.get $16 i32.xor i32.const -2048144777 i32.mul - local.tee $17 - local.get $17 + local.tee $16 i32.const 13 i32.shr_u + local.get $16 i32.xor i32.const -1028477379 i32.mul - local.tee $17 - local.get $17 + local.tee $16 i32.const 16 i32.shr_u + local.get $16 i32.xor - local.get $10 + local.get $13 i32.and i32.const 2 i32.shl - local.get $11 + local.get $14 i32.add - local.tee $17 + local.tee $16 i32.load i32.store offset=8 - local.get $17 + local.get $16 local.get $0 i32.store local.get $0 @@ -14709,39 +14818,39 @@ i32.add local.set $0 end - local.get $7 + local.get $10 i32.const 12 i32.add - local.set $7 - br $while-continue|019 + local.set $10 + br $while-continue|00 end end + local.get $12 local.get $14 - local.get $11 i32.store - local.get $11 + local.get $14 if + local.get $12 local.get $14 - local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $14 - local.get $10 + local.get $12 + local.get $13 i32.store offset=4 - local.get $14 - local.get $2 + local.get $12 + local.get $4 i32.store offset=8 - local.get $2 + local.get $4 if - local.get $14 - local.get $2 + local.get $12 + local.get $4 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $14 - local.get $9 + local.get $12 + local.get $5 i32.store offset=12 - local.get $14 - local.get $14 + local.get $12 + local.get $12 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -14750,48 +14859,48 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $12 i32.load offset=8 local.tee $0 i32.store - local.get $14 - local.get $14 + local.get $12 + local.get $12 i32.load offset=16 - local.tee $2 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $4 i32.const 12 i32.mul local.get $0 i32.add local.tee $0 - local.get $5 + local.get $3 i32.store local.get $0 - local.get $6 + local.get $3 i32.store offset=4 - local.get $14 - local.get $14 + local.get $12 + local.get $12 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $14 + local.get $12 i32.load - local.get $14 + local.get $12 i32.load offset=4 - local.get $8 + local.get $6 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $3 i32.load i32.store offset=8 - local.get $2 + local.get $3 local.get $0 i32.store end @@ -14799,8 +14908,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 - local.get $16 + local.get $9 + local.get $8 i32.const 20 i32.sub local.tee $0 @@ -14813,7 +14922,7 @@ br $for-loop|2 end end - local.get $14 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -14825,7 +14934,7 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $9 i32.load offset=20 i32.const 100 i32.ne @@ -14844,9 +14953,9 @@ i32.const 50 i32.lt_u if - local.get $4 + local.get $11 i32.load - local.get $4 + local.get $11 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -14881,12 +14990,12 @@ i32.shl i32.add i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find21 - loop $while-continue|022 - local.get $5 + local.set $2 + block $__inlined_func$~lib/map/Map#find18 + loop $while-continue|019 + local.get $2 if - local.get $5 + local.get $2 i32.load offset=8 local.tee $1 i32.const 1 @@ -14895,22 +15004,22 @@ i32.const 0 else local.get $0 - local.get $5 + local.get $2 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find21 + br_if $__inlined_func$~lib/map/Map#find18 local.get $1 i32.const -2 i32.and - local.set $5 - br $while-continue|022 + local.set $2 + br $while-continue|019 end end i32.const 0 - local.set $5 + local.set $2 end - local.get $5 + local.get $2 i32.eqz if i32.const 0 @@ -14920,7 +15029,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $11 local.get $0 call $~lib/map/Map#get local.get $0 @@ -14935,12 +15044,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $11 local.get $0 call $~lib/map/Map#delete - local.get $4 + local.get $11 i32.load - local.get $4 + local.get $11 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -14975,12 +15084,12 @@ i32.shl i32.add i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find24 - loop $while-continue|025 - local.get $5 + local.set $2 + block $__inlined_func$~lib/map/Map#find21 + loop $while-continue|022 + local.get $2 if - local.get $5 + local.get $2 i32.load offset=8 local.tee $1 i32.const 1 @@ -14989,22 +15098,22 @@ i32.const 0 else local.get $0 - local.get $5 + local.get $2 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find24 + br_if $__inlined_func$~lib/map/Map#find21 local.get $1 i32.const -2 i32.and - local.set $5 - br $while-continue|025 + local.set $2 + br $while-continue|022 end end i32.const 0 - local.set $5 + local.set $2 end - local.get $5 + local.get $2 if i32.const 0 i32.const 1568 @@ -15020,7 +15129,7 @@ br $for-loop|3 end end - local.get $4 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -15039,9 +15148,9 @@ i32.const 50 i32.lt_u if - local.get $4 + local.get $11 i32.load - local.get $4 + local.get $11 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -15076,12 +15185,12 @@ i32.shl i32.add i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find27 - loop $while-continue|028 - local.get $5 + local.set $2 + block $__inlined_func$~lib/map/Map#find24 + loop $while-continue|025 + local.get $2 if - local.get $5 + local.get $2 i32.load offset=8 local.tee $1 i32.const 1 @@ -15090,22 +15199,22 @@ i32.const 0 else local.get $0 - local.get $5 + local.get $2 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find27 + br_if $__inlined_func$~lib/map/Map#find24 local.get $1 i32.const -2 i32.and - local.set $5 - br $while-continue|028 + local.set $2 + br $while-continue|025 end end i32.const 0 - local.set $5 + local.set $2 end - local.get $5 + local.get $2 if i32.const 0 i32.const 1568 @@ -15114,15 +15223,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $11 local.get $0 local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $11 i32.load - local.get $4 + local.get $11 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -15157,12 +15266,12 @@ i32.shl i32.add i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find30 - loop $while-continue|031 - local.get $5 + local.set $2 + block $__inlined_func$~lib/map/Map#find27 + loop $while-continue|028 + local.get $2 if - local.get $5 + local.get $2 i32.load offset=8 local.tee $1 i32.const 1 @@ -15171,22 +15280,22 @@ i32.const 0 else local.get $0 - local.get $5 + local.get $2 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find30 + br_if $__inlined_func$~lib/map/Map#find27 local.get $1 i32.const -2 i32.and - local.set $5 - br $while-continue|031 + local.set $2 + br $while-continue|028 end end i32.const 0 - local.set $5 + local.set $2 end - local.get $5 + local.get $2 i32.eqz if i32.const 0 @@ -15196,12 +15305,12 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $11 local.get $0 call $~lib/map/Map#delete - local.get $4 + local.get $11 i32.load - local.get $4 + local.get $11 i32.load offset=4 local.get $0 i32.const -1028477379 @@ -15236,12 +15345,12 @@ i32.shl i32.add i32.load - local.set $5 - block $__inlined_func$~lib/map/Map#find33 - loop $while-continue|034 - local.get $5 + local.set $2 + block $__inlined_func$~lib/map/Map#find30 + loop $while-continue|031 + local.get $2 if - local.get $5 + local.get $2 i32.load offset=8 local.tee $1 i32.const 1 @@ -15250,22 +15359,22 @@ i32.const 0 else local.get $0 - local.get $5 + local.get $2 i32.load i32.eq end - br_if $__inlined_func$~lib/map/Map#find33 + br_if $__inlined_func$~lib/map/Map#find30 local.get $1 i32.const -2 i32.and - local.set $5 - br $while-continue|034 + local.set $2 + br $while-continue|031 end end i32.const 0 - local.set $5 + local.set $2 end - local.get $5 + local.get $2 if i32.const 0 i32.const 1568 @@ -15281,7 +15390,7 @@ br $for-loop|4 end end - local.get $4 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -15293,9 +15402,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $11 call $~lib/map/Map#clear - local.get $4 + local.get $11 i32.load offset=20 if i32.const 0 @@ -15320,61 +15429,60 @@ ) (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -15389,7 +15497,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $2 i32.const -2 i32.and @@ -15398,7 +15505,9 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) @@ -15438,7 +15547,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -15454,7 +15563,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 4 @@ -15464,23 +15573,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $8 i32.ne if - local.get $5 + local.get $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $4 i64.load local.tee $6 i64.store local.get $2 - local.get $5 + local.get $4 i32.load offset=8 i32.store offset=8 local.get $2 @@ -15528,7 +15637,7 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $9 i32.load @@ -15541,20 +15650,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 16 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -15583,61 +15692,60 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -15652,7 +15760,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $2 i32.const -2 i32.and @@ -15661,8 +15768,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -15717,61 +15825,60 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=12 local.tee $3 @@ -15786,7 +15893,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -15795,8 +15901,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -15889,8 +15996,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) @@ -15908,87 +16015,87 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + 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 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 24 i32.const 20 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $5 i32.store - local.get $9 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 if - local.get $9 - local.get $4 + local.get $5 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $5 i32.const 3 i32.store offset=4 - local.get $9 + local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $6 i32.store offset=8 - local.get $4 + local.get $6 if - local.get $9 - local.get $4 + local.get $5 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $5 i32.const 4 i32.store offset=12 - local.get $9 + local.get $5 i32.const 0 i32.store offset=16 - local.get $9 + 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 $1 - local.get $9 + local.get $2 + local.get $5 i32.store loop $for-loop|0 - local.get $3 + local.get $4 i64.const 100 i64.lt_s if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -15998,15 +16105,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 - local.get $3 + local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16017,10 +16124,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -16033,14 +16140,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|0 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -16053,14 +16160,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|1 - local.get $3 + local.get $4 i64.const 100 i64.lt_s if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16071,10 +16178,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -16087,15 +16194,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 - local.get $3 + local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16106,10 +16213,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -16122,14 +16229,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|1 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -16142,57 +16249,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $2 i32.const 0 i32.store - local.get $9 + local.get $5 i32.load offset=8 local.set $7 - local.get $9 + local.get $5 i32.load offset=16 - local.tee $8 - local.set $10 - local.get $6 + local.set $8 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 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 21 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $10 i32.store - local.get $1 + local.get $10 i32.const 0 i32.store - local.get $1 + local.get $10 i32.const 0 i32.store offset=4 - local.get $1 + local.get $10 i32.const 0 i32.store offset=8 - local.get $1 + local.get $10 i32.const 0 i32.store offset=12 - local.get $10 + local.get $8 i32.const 134217727 i32.gt_u if @@ -16204,98 +16309,100 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $8 i32.const 8 - local.get $10 + local.get $8 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $11 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $11 i32.store offset=4 - local.get $12 local.get $11 + local.get $9 call $~lib/memory/memory.fill - local.get $1 - local.get $12 + local.get $10 + local.get $11 i32.store - local.get $12 + local.get $11 if - local.get $1 - local.get $12 + local.get $10 + local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 - local.get $12 - i32.store offset=4 - local.get $1 + local.get $10 local.get $11 + i32.store offset=4 + local.get $10 + local.get $9 i32.store offset=8 - local.get $1 local.get $10 + 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 $6 - local.get $1 + local.get $2 + local.get $10 i32.store - loop $for-loop|01 - local.get $2 + loop $for-loop|02 + local.get $3 local.get $8 i32.lt_s if - local.get $2 + local.get $3 i32.const 4 i32.shl local.get $7 i32.add - local.tee $6 + local.tee $9 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.set $1 + local.get $10 + local.get $2 + local.get $9 + i64.load + call $~lib/array/Array#__set end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 - br $for-loop|01 + local.set $3 + 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 $1 + local.get $6 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 call $~lib/map/Map#values - local.tee $10 + local.tee $11 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16305,7 +16412,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 i32.const 0 @@ -16314,62 +16421,63 @@ i32.const 24 i32.const 22 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 $2 i32.store local.get $2 if - local.get $11 + local.get $12 local.get $2 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 96 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $2 i32.store offset=8 local.get $2 if - local.get $11 + local.get $12 local.get $2 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 $6 i32.store offset=16 loop $for-loop|2 - local.get $1 + local.get $10 i32.load offset=12 - local.get $5 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 + local.tee $2 + local.get $10 i32.load offset=12 - local.get $5 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -16378,20 +16486,20 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $10 i32.load offset=4 - local.get $5 + local.get $2 i32.const 3 i32.shl i32.add i64.load - local.set $3 - local.get $10 - local.get $5 + local.set $4 + local.get $11 + local.get $2 call $~lib/array/Array#__get - local.set $13 - local.get $9 - local.get $3 + local.set $7 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16402,8 +16510,8 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $13 + local.get $5 + local.get $7 i32.const 20 i32.sub i64.extend_i32_s @@ -16424,13 +16532,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $11 + local.get $12 i32.load - local.get $3 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16440,7 +16548,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16470,8 +16578,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $14 - local.get $11 + local.tee $13 + local.get $12 i32.load offset=4 i32.and i32.const 2 @@ -16485,19 +16593,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 $3 + local.get $4 local.get $0 i64.load i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + local.get $1 i32.const -2 i32.and local.set $0 @@ -16510,18 +16618,18 @@ local.get $0 if local.get $0 - local.get $3 + local.get $4 i64.store offset=8 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 @@ -16529,17 +16637,17 @@ 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 i32.const 1 i32.or end - local.set $15 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16547,20 +16655,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $15 + local.get $8 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -16568,41 +16676,41 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $14 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $11 + local.get $12 i32.load offset=8 - local.tee $4 - local.get $11 + local.tee $1 + local.get $12 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $8 - local.get $2 + local.set $15 + local.get $3 local.set $0 - loop $while-continue|02 - local.get $4 - local.get $8 + loop $while-continue|00 + local.get $1 + local.get $15 i32.ne if - local.get $4 + local.get $1 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $4 + local.get $1 i64.load local.tee $16 i64.store local.get $0 - local.get $4 + local.get $1 i64.load offset=8 i64.store offset=8 local.get $0 @@ -16646,11 +16754,11 @@ i32.const 16 i32.shr_u i32.xor - local.get $15 + local.get $8 i32.and i32.const 2 i32.shl - local.get $6 + local.get $9 i32.add local.tee $17 i32.load @@ -16663,39 +16771,39 @@ i32.add local.set $0 end - local.get $4 + local.get $1 i32.const 24 i32.add - local.set $4 - br $while-continue|02 + local.set $1 + br $while-continue|00 end end - local.get $11 - local.get $6 + local.get $12 + local.get $9 i32.store - local.get $6 + local.get $9 if - local.get $11 - local.get $6 + local.get $12 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $15 + local.get $12 + local.get $8 i32.store offset=4 - local.get $11 - local.get $2 + local.get $12 + local.get $3 i32.store offset=8 - local.get $2 + local.get $3 if - local.get $11 - local.get $2 + local.get $12 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $7 + local.get $12 + local.get $14 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 @@ -16704,48 +16812,48 @@ 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 $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 $3 + local.get $4 i64.store local.get $0 - local.get $3 + local.get $4 i64.store offset=8 - 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 $14 + local.get $13 i32.and 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 @@ -16753,21 +16861,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - local.get $13 + local.get $6 + local.get $7 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $5 + local.get $2 i32.const 1 i32.add - local.set $5 + local.set $0 br $for-loop|2 end end - local.get $11 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -16779,7 +16887,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -16792,14 +16900,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|3 - local.get $3 + local.get $4 i64.const 50 i64.lt_s if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16810,10 +16918,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -16826,11 +16934,11 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -16840,14 +16948,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|3 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -16860,14 +16968,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|4 - local.get $3 + local.get $4 i64.const 50 i64.lt_s if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -16877,15 +16985,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 - local.get $3 + local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16896,11 +17004,11 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -16910,14 +17018,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|4 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -16929,9 +17037,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 @@ -16956,61 +17064,60 @@ ) (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -17025,7 +17132,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $2 i32.const -2 i32.and @@ -17034,7 +17140,9 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) @@ -17074,7 +17182,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -17090,7 +17198,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 4 @@ -17100,23 +17208,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $8 i32.ne if - local.get $5 + local.get $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $4 i64.load local.tee $6 i64.store local.get $2 - local.get $5 + local.get $4 i32.load offset=8 i32.store offset=8 local.get $2 @@ -17164,7 +17272,7 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $9 i32.load @@ -17177,20 +17285,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 16 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -17219,61 +17327,60 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -17288,7 +17395,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $2 i32.const -2 i32.and @@ -17297,8 +17403,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -17314,61 +17421,60 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=12 local.tee $3 @@ -17383,7 +17489,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -17392,8 +17497,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -17449,8 +17555,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) @@ -17468,87 +17574,87 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + 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 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 24 i32.const 23 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $5 i32.store - local.get $9 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 if - local.get $9 - local.get $4 + local.get $5 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $5 i32.const 3 i32.store offset=4 - local.get $9 + local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $6 i32.store offset=8 - local.get $4 + local.get $6 if - local.get $9 - local.get $4 + local.get $5 + local.get $6 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $5 i32.const 4 i32.store offset=12 - local.get $9 + local.get $5 i32.const 0 i32.store offset=16 - local.get $9 + 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 $1 - local.get $9 + local.get $2 + local.get $5 i32.store loop $for-loop|0 - local.get $3 + local.get $4 i64.const 100 i64.lt_u if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -17558,15 +17664,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 - local.get $3 + local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17577,10 +17683,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -17593,14 +17699,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|0 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -17613,14 +17719,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|1 - local.get $3 + local.get $4 i64.const 100 i64.lt_u if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17631,10 +17737,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -17647,15 +17753,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 - local.get $3 + local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17666,10 +17772,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -17682,14 +17788,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|1 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -17702,57 +17808,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $2 i32.const 0 i32.store - local.get $9 + local.get $5 i32.load offset=8 local.set $7 - local.get $9 + local.get $5 i32.load offset=16 - local.tee $8 - local.set $10 - local.get $6 + local.set $8 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 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 24 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $10 i32.store - local.get $1 + local.get $10 i32.const 0 i32.store - local.get $1 + local.get $10 i32.const 0 i32.store offset=4 - local.get $1 + local.get $10 i32.const 0 i32.store offset=8 - local.get $1 + local.get $10 i32.const 0 i32.store offset=12 - local.get $10 + local.get $8 i32.const 134217727 i32.gt_u if @@ -17764,98 +17868,100 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $8 i32.const 8 - local.get $10 + local.get $8 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $11 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $11 i32.store offset=4 - local.get $12 local.get $11 + local.get $9 call $~lib/memory/memory.fill - local.get $1 - local.get $12 + local.get $10 + local.get $11 i32.store - local.get $12 + local.get $11 if - local.get $1 - local.get $12 + local.get $10 + local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 - local.get $12 - i32.store offset=4 - local.get $1 + local.get $10 local.get $11 + i32.store offset=4 + local.get $10 + local.get $9 i32.store offset=8 - local.get $1 local.get $10 + 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 $6 - local.get $1 + local.get $2 + local.get $10 i32.store - loop $for-loop|01 - local.get $2 + loop $for-loop|02 + local.get $3 local.get $8 i32.lt_s if - local.get $2 + local.get $3 i32.const 4 i32.shl local.get $7 i32.add - local.tee $6 + local.tee $9 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.set $1 + local.get $10 + local.get $2 + local.get $9 + i64.load + call $~lib/array/Array#__set end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 - br $for-loop|01 + local.set $3 + 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 $1 + local.get $6 + local.get $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 call $~lib/map/Map#values - local.tee $10 + local.tee $11 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17865,7 +17971,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $2 i32.const 0 @@ -17874,62 +17980,63 @@ i32.const 24 i32.const 25 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 $2 i32.store local.get $2 if - local.get $11 + local.get $12 local.get $2 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 96 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $2 i32.store offset=8 local.get $2 if - local.get $11 + local.get $12 local.get $2 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 $6 i32.store offset=16 loop $for-loop|2 - local.get $1 + local.get $10 i32.load offset=12 - local.get $5 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 + local.tee $2 + local.get $10 i32.load offset=12 - local.get $5 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -17938,20 +18045,20 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $10 i32.load offset=4 - local.get $5 + local.get $2 i32.const 3 i32.shl i32.add i64.load - local.set $3 - local.get $10 - local.get $5 + local.set $4 + local.get $11 + local.get $2 call $~lib/array/Array#__get - local.set $13 - local.get $9 - local.get $3 + local.set $7 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17962,8 +18069,8 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $13 + local.get $5 + local.get $7 i32.const 20 i32.sub i64.extend_i32_s @@ -17984,13 +18091,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $11 + local.get $12 i32.load - local.get $3 + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18000,7 +18107,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18030,8 +18137,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $14 - local.get $11 + local.tee $13 + local.get $12 i32.load offset=4 i32.and i32.const 2 @@ -18045,19 +18152,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 $3 + local.get $4 local.get $0 i64.load i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + local.get $1 i32.const -2 i32.and local.set $0 @@ -18070,18 +18177,18 @@ local.get $0 if local.get $0 - local.get $3 + local.get $4 i64.store offset=8 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 @@ -18089,17 +18196,17 @@ 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 i32.const 1 i32.or end - local.set $15 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18107,20 +18214,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $15 + local.get $8 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -18128,41 +18235,41 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $14 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $11 + local.get $12 i32.load offset=8 - local.tee $4 - local.get $11 + local.tee $1 + local.get $12 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $8 - local.get $2 + local.set $15 + local.get $3 local.set $0 - loop $while-continue|02 - local.get $4 - local.get $8 + loop $while-continue|00 + local.get $1 + local.get $15 i32.ne if - local.get $4 + local.get $1 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $4 + local.get $1 i64.load local.tee $16 i64.store local.get $0 - local.get $4 + local.get $1 i64.load offset=8 i64.store offset=8 local.get $0 @@ -18206,11 +18313,11 @@ i32.const 16 i32.shr_u i32.xor - local.get $15 + local.get $8 i32.and i32.const 2 i32.shl - local.get $6 + local.get $9 i32.add local.tee $17 i32.load @@ -18223,39 +18330,39 @@ i32.add local.set $0 end - local.get $4 + local.get $1 i32.const 24 i32.add - local.set $4 - br $while-continue|02 + local.set $1 + br $while-continue|00 end end - local.get $11 - local.get $6 + local.get $12 + local.get $9 i32.store - local.get $6 + local.get $9 if - local.get $11 - local.get $6 + local.get $12 + local.get $9 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $15 + local.get $12 + local.get $8 i32.store offset=4 - local.get $11 - local.get $2 + local.get $12 + local.get $3 i32.store offset=8 - local.get $2 + local.get $3 if - local.get $11 - local.get $2 + local.get $12 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $7 + local.get $12 + local.get $14 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 @@ -18264,48 +18371,48 @@ 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 $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 $3 + local.get $4 i64.store local.get $0 - local.get $3 + local.get $4 i64.store offset=8 - 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 $14 + local.get $13 i32.and 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 @@ -18313,21 +18420,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 - local.get $13 + local.get $6 + local.get $7 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $5 + local.get $2 i32.const 1 i32.add - local.set $5 + local.set $0 br $for-loop|2 end end - local.get $11 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -18339,7 +18446,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $6 i32.load offset=20 i32.const 100 i32.ne @@ -18352,14 +18459,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|3 - local.get $3 + local.get $4 i64.const 50 i64.lt_u if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -18370,10 +18477,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -18386,11 +18493,11 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -18400,14 +18507,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|3 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -18420,14 +18527,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|4 - local.get $3 + local.get $4 i64.const 50 i64.lt_u if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -18437,15 +18544,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 - local.get $3 + local.get $5 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -18456,11 +18563,11 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -18470,14 +18577,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|4 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -18489,9 +18596,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 @@ -18550,7 +18657,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -18566,7 +18673,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 @@ -18576,23 +18683,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $7 i32.ne if - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $4 f32.load local.tee $8 f32.store local.get $2 - local.get $5 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 @@ -18607,29 +18714,29 @@ 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 $4 + local.get $5 i32.add local.tee $9 i32.load @@ -18642,20 +18749,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 12 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -18684,50 +18791,49 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 f32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 local.tee $2 @@ -18742,7 +18848,6 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $2 i32.const -2 i32.and @@ -18751,8 +18856,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -18768,50 +18874,49 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -18826,7 +18931,6 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -18835,8 +18939,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -18894,15 +18999,15 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) + (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 f32) (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) + (local $11 f32) (local $12 i32) - (local $13 f32) + (local $13 i32) (local $14 i32) (local $15 i32) (local $16 i32) @@ -18911,90 +19016,90 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i64.const 0 i64.store - local.get $3 + local.get $2 i64.const 0 i64.store offset=8 - local.get $3 + local.get $2 i32.const 0 i32.store offset=16 - local.get $3 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + 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 26 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $13 i32.store - local.get $2 + local.get $13 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 if - local.get $2 - local.get $4 + local.get $13 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $13 i32.const 3 i32.store offset=4 - local.get $2 + local.get $13 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $1 i32.store offset=8 - local.get $4 + local.get $1 if - local.get $2 - local.get $4 + local.get $13 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $13 i32.const 4 i32.store offset=12 - local.get $2 + local.get $13 i32.const 0 i32.store offset=16 - local.get $2 + 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 $3 local.get $2 + local.get $13 i32.store loop $for-loop|0 - local.get $5 + local.get $7 f32.const 100 f32.lt if - local.get $2 + local.get $13 i32.load - local.get $2 + local.get $13 i32.load offset=4 - local.get $5 + local.get $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19004,22 +19109,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 @@ -19028,36 +19133,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $6 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $6 if - local.get $4 + local.get $6 i32.load offset=8 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $4 + local.get $7 + local.get $6 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $1 i32.const -2 i32.and - local.set $4 + local.set $6 br $while-continue|0 end end i32.const 0 - local.set $4 + local.set $6 end - local.get $4 + local.get $6 if i32.const 0 i32.const 1568 @@ -19066,18 +19171,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $5 - local.get $5 + local.get $13 + local.get $7 + local.get $7 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $2 + local.get $13 i32.load - local.get $2 + local.get $13 i32.load offset=4 - local.get $5 + local.get $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19087,22 +19192,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 @@ -19111,36 +19216,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $6 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $4 + local.get $6 if - local.get $4 + local.get $6 i32.load offset=8 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $4 + local.get $7 + local.get $6 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + local.get $1 i32.const -2 i32.and - local.set $4 + local.set $6 br $while-continue|02 end end i32.const 0 - local.set $4 + local.set $6 end - local.get $4 + local.get $6 i32.eqz if i32.const 0 @@ -19150,10 +19255,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $5 + local.get $13 + local.get $7 call $~lib/map/Map#get - local.get $5 + local.get $7 i32.trunc_f32_s i32.const 10 i32.add @@ -19166,14 +19271,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $7 f32.const 1 f32.add - local.set $5 + local.set $7 br $for-loop|0 end end - local.get $2 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -19186,17 +19291,17 @@ unreachable end f32.const 0 - local.set $5 + local.set $7 loop $for-loop|1 - local.get $5 + local.get $7 f32.const 100 f32.lt if - local.get $2 + local.get $13 i32.load - local.get $2 + local.get $13 i32.load offset=4 - local.get $5 + local.get $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19206,22 +19311,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 @@ -19230,36 +19335,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $6 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $4 + local.get $6 if - local.get $4 + local.get $6 i32.load offset=8 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $4 + local.get $7 + local.get $6 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $3 + local.get $1 i32.const -2 i32.and - local.set $4 + local.set $6 br $while-continue|05 end end i32.const 0 - local.set $4 + local.set $6 end - local.get $4 + local.get $6 i32.eqz if i32.const 0 @@ -19269,10 +19374,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $5 + local.get $13 + local.get $7 call $~lib/map/Map#get - local.get $5 + local.get $7 i32.trunc_f32_s i32.const 10 i32.add @@ -19285,18 +19390,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $5 - local.get $5 + local.get $13 + local.get $7 + local.get $7 i32.trunc_f32_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $2 + local.get $13 i32.load - local.get $2 + local.get $13 i32.load offset=4 - local.get $5 + local.get $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19306,22 +19411,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 @@ -19330,36 +19435,36 @@ i32.shl i32.add i32.load - local.set $4 + local.set $6 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $4 + local.get $6 if - local.get $4 + local.get $6 i32.load offset=8 - local.tee $3 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $4 + local.get $7 + local.get $6 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $3 + local.get $1 i32.const -2 i32.and - local.set $4 + local.set $6 br $while-continue|08 end end i32.const 0 - local.set $4 + local.set $6 end - local.get $4 + local.get $6 i32.eqz if i32.const 0 @@ -19369,10 +19474,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $5 + local.get $13 + local.get $7 call $~lib/map/Map#get - local.get $5 + local.get $7 i32.trunc_f32_s i32.const 20 i32.add @@ -19385,14 +19490,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $7 f32.const 1 f32.add - local.set $5 + local.set $7 br $for-loop|1 end end - local.get $2 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -19405,58 +19510,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 + local.tee $9 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $8 i32.const 0 i32.store - local.get $2 - local.tee $3 + local.get $13 i32.load offset=8 - local.set $8 - local.get $2 + local.set $6 + local.get $13 i32.load offset=16 - local.tee $9 - local.set $2 - local.get $7 + local.set $3 + local.get $8 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $1 i64.const 0 i64.store - local.get $10 + local.get $1 i32.const 16 i32.const 27 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $4 i32.store - local.get $10 + local.get $4 i32.const 0 i32.store - local.get $10 + local.get $4 i32.const 0 i32.store offset=4 - local.get $10 + local.get $4 i32.const 0 i32.store offset=8 - local.get $10 + local.get $4 i32.const 0 i32.store offset=12 - local.get $2 + local.get $3 i32.const 268435455 i32.gt_u if @@ -19468,77 +19570,77 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 8 - local.get $2 + local.get $3 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $11 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $1 i32.store offset=4 - local.get $12 - local.get $11 + local.get $1 + local.get $2 call $~lib/memory/memory.fill - local.get $10 - local.get $12 + local.get $4 + local.get $1 i32.store - local.get $12 + local.get $1 if - local.get $10 - local.get $12 + local.get $4 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 - local.get $12 + local.get $4 + local.get $1 i32.store offset=4 - local.get $10 - local.get $11 - i32.store offset=8 - local.get $10 + local.get $4 local.get $2 + i32.store offset=8 + local.get $4 + 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 $10 + local.get $8 + local.get $4 i32.store - loop $for-loop|01 - local.get $6 - local.get $9 - i32.lt_s + loop $for-loop|02 + local.get $3 + local.get $10 + i32.gt_s if - local.get $6 + local.get $10 i32.const 12 i32.mul - local.get $8 + local.get $6 i32.add - local.tee $7 + local.tee $1 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $1 - local.tee $2 + f32.load + local.set $7 + local.get $5 + local.tee $1 i32.const 1 i32.add - local.set $1 - local.get $7 - f32.load local.set $5 - local.get $10 + local.get $4 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 @@ -19549,52 +19651,53 @@ call $~lib/builtins/abort unreachable end - local.get $10 - local.get $2 + local.get $4 + local.get $1 i32.const 1 i32.add - local.tee $7 + local.tee $2 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity - local.get $10 - local.get $7 + local.get $4 + local.get $2 i32.store offset=12 end - local.get $10 + local.get $4 i32.load offset=4 - local.get $2 + local.get $1 i32.const 2 i32.shl i32.add - local.get $5 + local.get $7 f32.store end - local.get $6 + local.get $10 i32.const 1 i32.add - local.set $6 - br $for-loop|01 + local.set $10 + br $for-loop|02 end end - local.get $10 - local.get $1 + local.get $4 + local.get $5 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 - local.get $1 + local.get $4 + local.get $5 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 $9 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $13 call $~lib/map/Map#values - local.tee $9 + local.tee $12 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -19604,70 +19707,70 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + 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 28 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 $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if - local.get $11 - local.get $2 + local.get $3 + local.get $1 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 $2 + local.tee $1 i32.store offset=8 - local.get $2 + local.get $1 if - local.get $11 - local.get $2 + local.get $3 + local.get $1 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 $11 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $12 + local.tee $16 i32.store offset=16 loop $for-loop|2 - local.get $10 + local.get $4 i32.load offset=12 local.get $0 i32.gt_s if local.get $0 - local.tee $1 - local.get $10 + local.tee $2 + local.get $4 i32.load offset=12 i32.ge_u if @@ -19678,23 +19781,23 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 i32.load offset=4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add f32.load - local.set $5 - local.get $9 - local.get $1 + local.set $11 + local.get $12 + local.get $2 call $~lib/array/Array#__get - local.set $7 - local.get $3 + local.set $10 + local.get $13 i32.load - local.get $3 + local.get $13 i32.load offset=4 - local.get $5 + local.get $11 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19728,12 +19831,12 @@ i32.shl i32.add i32.load - local.set $4 - block $__inlined_func$~lib/map/Map#find12 - loop $while-continue|013 - local.get $4 + local.set $6 + block $__inlined_func$~lib/map/Map#find10 + loop $while-continue|011 + local.get $6 if - local.get $4 + local.get $6 i32.load offset=8 local.tee $0 i32.const 1 @@ -19741,23 +19844,23 @@ if (result i32) i32.const 0 else - local.get $5 - local.get $4 + local.get $11 + local.get $6 f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find12 + br_if $__inlined_func$~lib/map/Map#find10 local.get $0 i32.const -2 i32.and - local.set $4 - br $while-continue|013 + local.set $6 + br $while-continue|011 end end i32.const 0 - local.set $4 + local.set $6 end - local.get $4 + local.get $6 i32.eqz if i32.const 0 @@ -19767,15 +19870,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $13 i32.load - local.get $3 + local.get $13 i32.load offset=4 - local.get $7 + local.get $10 i32.const 20 i32.sub f32.convert_i32_s - local.tee $13 + local.tee $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19809,12 +19912,12 @@ i32.shl i32.add i32.load - local.set $4 - block $__inlined_func$~lib/map/Map#find15 - loop $while-continue|016 - local.get $4 + local.set $6 + block $__inlined_func$~lib/map/Map#find13 + loop $while-continue|014 + local.get $6 if - local.get $4 + local.get $6 i32.load offset=8 local.tee $0 i32.const 1 @@ -19822,23 +19925,23 @@ if (result i32) i32.const 0 else - local.get $13 - local.get $4 + local.get $7 + local.get $6 f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find15 + br_if $__inlined_func$~lib/map/Map#find13 local.get $0 i32.const -2 i32.and - local.set $4 - br $while-continue|016 + local.set $6 + br $while-continue|014 end end i32.const 0 - local.set $4 + local.set $6 end - local.get $4 + local.get $6 i32.eqz if i32.const 0 @@ -19855,13 +19958,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $11 + local.get $3 i32.load - local.get $5 + local.get $11 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19872,76 +19975,76 @@ 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.get $11 + local.tee $9 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 - block $__inlined_func$~lib/map/Map#find17 - loop $while-continue|018 - local.get $4 + local.set $0 + block $__inlined_func$~lib/map/Map#find15 + loop $while-continue|016 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $4 + local.get $11 + local.get $0 f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find17 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find15 + local.get $1 i32.const -2 i32.and - local.set $4 - br $while-continue|018 + local.set $0 + br $while-continue|016 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 if - local.get $4 - local.get $5 + local.get $0 + local.get $11 f32.store offset=4 else - local.get $11 + local.get $3 i32.load offset=16 - local.get $11 + local.get $3 i32.load offset=12 i32.eq if - local.get $11 + local.get $3 i32.load offset=20 - local.get $11 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -19949,17 +20052,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $11 + local.get $3 i32.load offset=4 else - local.get $11 + local.get $3 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $4 + local.set $15 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -19967,20 +20070,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $4 + local.get $15 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $14 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -19988,45 +20091,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $8 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $11 + local.get $3 i32.load offset=8 - local.tee $6 - local.get $11 + local.tee $5 + local.get $3 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $16 - local.get $2 + local.set $17 + local.get $1 local.set $0 - loop $while-continue|019 - local.get $6 - local.get $16 + loop $while-continue|00 + local.get $5 + local.get $17 i32.ne if - local.get $6 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $6 + local.get $5 f32.load - local.tee $13 + local.tee $7 f32.store local.get $0 - local.get $6 + local.get $5 f32.load offset=4 f32.store offset=4 local.get $0 - local.get $13 + local.get $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20036,35 +20139,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $17 - local.get $17 + local.tee $6 i32.const 15 i32.shr_u + local.get $6 i32.xor i32.const -2048144777 i32.mul - local.tee $17 - local.get $17 + local.tee $6 i32.const 13 i32.shr_u + local.get $6 i32.xor i32.const -1028477379 i32.mul - local.tee $17 - local.get $17 + local.tee $6 i32.const 16 i32.shr_u + local.get $6 i32.xor - local.get $4 + local.get $15 i32.and i32.const 2 i32.shl - local.get $8 + local.get $14 i32.add - local.tee $17 + local.tee $6 i32.load i32.store offset=8 - local.get $17 + local.get $6 local.get $0 i32.store local.get $0 @@ -20072,39 +20175,39 @@ i32.add local.set $0 end - local.get $6 + local.get $5 i32.const 12 i32.add - local.set $6 - br $while-continue|019 + local.set $5 + br $while-continue|00 end end - local.get $11 - local.get $8 + local.get $3 + local.get $14 i32.store - local.get $8 + local.get $14 if - local.get $11 - local.get $8 + local.get $3 + local.get $14 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $4 + local.get $3 + local.get $15 i32.store offset=4 - local.get $11 - local.get $2 + local.get $3 + local.get $1 i32.store offset=8 - local.get $2 + local.get $1 if - local.get $11 - local.get $2 + local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $11 - local.get $15 + local.get $3 + local.get $8 i32.store offset=12 - local.get $11 - local.get $11 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -20113,70 +20216,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $1 i32.store - local.get $11 - local.get $11 + local.get $3 + local.get $3 i32.load offset=16 - local.tee $2 + local.tee $0 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $0 i32.const 12 i32.mul - local.get $0 + local.get $1 i32.add - local.tee $0 - local.get $5 - f32.store - local.get $0 - local.get $5 - f32.store offset=4 + local.tee $1 local.get $11 + f32.store + local.get $1 local.get $11 + f32.store offset=4 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $11 + local.get $1 + local.get $3 i32.load - local.get $11 + local.get $3 i32.load offset=4 - local.get $14 + local.get $9 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $0 i32.load i32.store offset=8 - 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 $12 - local.get $7 + local.get $16 + local.get $10 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $1 + local.get $2 i32.const 1 i32.add local.set $0 br $for-loop|2 end end - local.get $11 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -20188,7 +20291,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $16 i32.load offset=20 i32.const 100 i32.ne @@ -20201,17 +20304,17 @@ unreachable end f32.const 0 - local.set $5 + local.set $7 loop $for-loop|3 - local.get $5 + local.get $7 f32.const 50 f32.lt if - local.get $3 + local.get $13 i32.load - local.get $3 + local.get $13 i32.load offset=4 - local.get $5 + local.get $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20245,36 +20348,36 @@ i32.shl i32.add i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find21 - loop $while-continue|022 - local.get $0 + local.set $6 + block $__inlined_func$~lib/map/Map#find18 + loop $while-continue|019 + local.get $6 if - local.get $0 + local.get $6 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $0 + local.get $7 + local.get $6 f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find21 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find18 + local.get $0 i32.const -2 i32.and - local.set $0 - br $while-continue|022 + local.set $6 + br $while-continue|019 end end i32.const 0 - local.set $0 + local.set $6 end - local.get $0 + local.get $6 i32.eqz if i32.const 0 @@ -20284,10 +20387,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $5 + local.get $13 + local.get $7 call $~lib/map/Map#get - local.get $5 + local.get $7 i32.trunc_f32_s i32.const 20 i32.add @@ -20300,14 +20403,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $5 + local.get $13 + local.get $7 call $~lib/map/Map#delete - local.get $3 + local.get $13 i32.load - local.get $3 + local.get $13 i32.load offset=4 - local.get $5 + local.get $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20341,36 +20444,36 @@ i32.shl i32.add i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find24 - loop $while-continue|025 - local.get $0 + local.set $6 + block $__inlined_func$~lib/map/Map#find21 + loop $while-continue|022 + local.get $6 if - local.get $0 + local.get $6 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $0 + local.get $7 + local.get $6 f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find24 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find21 + local.get $0 i32.const -2 i32.and - local.set $0 - br $while-continue|025 + local.set $6 + br $while-continue|022 end end i32.const 0 - local.set $0 + local.set $6 end - local.get $0 + local.get $6 if i32.const 0 i32.const 1568 @@ -20379,14 +20482,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $7 f32.const 1 f32.add - local.set $5 + local.set $7 br $for-loop|3 end end - local.get $3 + local.get $13 i32.load offset=20 i32.const 50 i32.ne @@ -20399,17 +20502,17 @@ unreachable end f32.const 0 - local.set $5 + local.set $7 loop $for-loop|4 - local.get $5 + local.get $7 f32.const 50 f32.lt if - local.get $3 + local.get $13 i32.load - local.get $3 + local.get $13 i32.load offset=4 - local.get $5 + local.get $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20443,36 +20546,36 @@ i32.shl i32.add i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find27 - loop $while-continue|028 - local.get $0 + local.set $6 + block $__inlined_func$~lib/map/Map#find24 + loop $while-continue|025 + local.get $6 if - local.get $0 + local.get $6 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $0 + local.get $7 + local.get $6 f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find27 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find24 + local.get $0 i32.const -2 i32.and - local.set $0 - br $while-continue|028 + local.set $6 + br $while-continue|025 end end i32.const 0 - local.set $0 + local.set $6 end - local.get $0 + local.get $6 if i32.const 0 i32.const 1568 @@ -20481,18 +20584,18 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $5 - local.get $5 + local.get $13 + local.get $7 + local.get $7 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $3 + local.get $13 i32.load - local.get $3 + local.get $13 i32.load offset=4 - local.get $5 + local.get $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20526,36 +20629,36 @@ i32.shl i32.add i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find30 - loop $while-continue|031 - local.get $0 + local.set $6 + block $__inlined_func$~lib/map/Map#find27 + loop $while-continue|028 + local.get $6 if - local.get $0 + local.get $6 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $0 + local.get $7 + local.get $6 f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find30 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find27 + local.get $0 i32.const -2 i32.and - local.set $0 - br $while-continue|031 + local.set $6 + br $while-continue|028 end end i32.const 0 - local.set $0 + local.set $6 end - local.get $0 + local.get $6 i32.eqz if i32.const 0 @@ -20565,14 +20668,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $5 + local.get $13 + local.get $7 call $~lib/map/Map#delete - local.get $3 + local.get $13 i32.load - local.get $3 + local.get $13 i32.load offset=4 - local.get $5 + local.get $7 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20606,36 +20709,36 @@ i32.shl i32.add i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find33 - loop $while-continue|034 - local.get $0 + local.set $6 + block $__inlined_func$~lib/map/Map#find30 + loop $while-continue|031 + local.get $6 if - local.get $0 + local.get $6 i32.load offset=8 - local.tee $1 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 - local.get $0 + local.get $7 + local.get $6 f32.load f32.eq end - br_if $__inlined_func$~lib/map/Map#find33 - local.get $1 + br_if $__inlined_func$~lib/map/Map#find30 + local.get $0 i32.const -2 i32.and - local.set $0 - br $while-continue|034 + local.set $6 + br $while-continue|031 end end i32.const 0 - local.set $0 + local.set $6 end - local.get $0 + local.get $6 if i32.const 0 i32.const 1568 @@ -20644,14 +20747,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $7 f32.const 1 f32.add - local.set $5 + local.set $7 br $for-loop|4 end end - local.get $3 + local.get $13 i32.load offset=20 i32.const 50 i32.ne @@ -20663,9 +20766,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $13 call $~lib/map/Map#clear - local.get $3 + local.get $13 i32.load offset=20 if i32.const 0 @@ -20689,65 +20792,64 @@ unreachable ) (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + (local $2 i64) + (local $3 i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $3 @@ -20762,7 +20864,6 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -20771,7 +20872,9 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) @@ -20812,7 +20915,7 @@ i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer local.get $2 @@ -20828,7 +20931,7 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 local.get $0 i32.load offset=16 i32.const 4 @@ -20838,23 +20941,23 @@ local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $7 i32.ne if - local.get $5 + local.get $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $4 f64.load local.tee $8 f64.store local.get $2 - local.get $5 + local.get $4 i32.load offset=8 i32.store offset=8 local.get $2 @@ -20904,7 +21007,7 @@ i32.and i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add local.tee $10 i32.load @@ -20917,20 +21020,20 @@ i32.add local.set $2 end - local.get $5 + local.get $4 i32.const 16 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $4 + local.get $5 i32.store - local.get $4 + local.get $5 if local.get $0 - local.get $4 + local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 @@ -20960,63 +21063,62 @@ (func $~lib/map/Map#get (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $3 @@ -21031,7 +21133,6 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -21040,8 +21141,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -21058,63 +21160,62 @@ (local $2 i32) (local $3 i64) (local $4 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=12 local.tee $4 @@ -21129,7 +21230,6 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $4 i32.const -2 i32.and @@ -21138,8 +21238,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -21195,10 +21296,10 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 i64) - (local $6 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i64) (local $7 i32) (local $8 i32) (local $9 i32) @@ -21215,87 +21316,87 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + 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 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i32.const 0 i32.store - local.get $6 + local.get $5 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $5 i32.store - local.get $9 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 if - local.get $9 - local.get $6 + local.get $5 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $5 i32.const 3 i32.store offset=4 - local.get $9 + local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $7 i32.store offset=8 - local.get $6 + local.get $7 if - local.get $9 - local.get $6 + local.get $5 + local.get $7 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $9 + local.get $5 i32.const 4 i32.store offset=12 - local.get $9 + local.get $5 i32.const 0 i32.store offset=16 - local.get $9 + 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 $1 - local.get $9 + local.get $2 + local.get $5 i32.store loop $for-loop|0 - local.get $3 + local.get $4 f64.const 100 f64.lt if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -21305,15 +21406,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 - local.get $3 + local.get $5 + local.get $4 + local.get $4 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -21324,10 +21425,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.trunc_f64_s i32.const 10 i32.add @@ -21340,14 +21441,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 f64.const 1 f64.add - local.set $3 + local.set $4 br $for-loop|0 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -21360,14 +21461,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $4 loop $for-loop|1 - local.get $3 + local.get $4 f64.const 100 f64.lt if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -21378,10 +21479,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.trunc_f64_s i32.const 10 i32.add @@ -21394,15 +21495,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 - local.get $3 + local.get $5 + local.get $4 + local.get $4 i32.trunc_f64_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -21413,10 +21514,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.trunc_f64_s i32.const 20 i32.add @@ -21429,14 +21530,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 f64.const 1 f64.add - local.set $3 + local.set $4 br $for-loop|1 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -21449,39 +21550,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $7 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $9 + local.get $5 i32.load offset=8 - local.set $7 - local.get $9 + local.set $8 + local.get $5 i32.load offset=16 - local.tee $8 - local.set $10 - local.get $1 + local.set $9 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $11 + local.tee $10 i64.const 0 i64.store - local.get $11 + local.get $10 i32.const 16 i32.const 30 call $~lib/rt/itcms/__new @@ -21499,7 +21598,7 @@ local.get $11 i32.const 0 i32.store offset=12 - local.get $10 + local.get $9 i32.const 134217727 i32.gt_u if @@ -21511,77 +21610,77 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $9 i32.const 8 - local.get $10 + local.get $9 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $12 + local.tee $10 i32.const 0 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $12 i32.store offset=4 - local.get $13 local.get $12 + local.get $10 call $~lib/memory/memory.fill local.get $11 - local.get $13 + local.get $12 i32.store - local.get $13 + local.get $12 if local.get $11 - local.get $13 + local.get $12 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $11 - local.get $13 + local.get $12 i32.store offset=4 local.get $11 - local.get $12 + local.get $10 i32.store offset=8 local.get $11 - 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 $1 + local.get $2 local.get $11 i32.store - loop $for-loop|01 - local.get $2 - local.get $8 + loop $for-loop|02 + local.get $3 + local.get $9 i32.lt_s if - local.get $2 + local.get $3 i32.const 4 i32.shl - local.get $7 + local.get $8 i32.add - local.tee $10 + local.tee $2 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 + local.get $2 + f64.load + local.set $4 + local.get $1 + local.tee $2 i32.const 1 i32.add - local.set $0 - local.get $10 - f64.load - local.set $3 + local.set $1 local.get $11 i32.load offset=12 - local.get $1 + local.get $2 i32.le_u if - local.get $1 + local.get $2 i32.const 0 i32.lt_s if @@ -21593,7 +21692,7 @@ unreachable end local.get $11 - local.get $1 + local.get $2 i32.const 1 i32.add local.tee $10 @@ -21606,38 +21705,39 @@ end local.get $11 i32.load offset=4 - local.get $1 + local.get $2 i32.const 3 i32.shl i32.add - local.get $3 + local.get $4 f64.store end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 - br $for-loop|01 + local.set $3 + br $for-loop|02 end end local.get $11 - local.get $0 + local.get $1 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity local.get $11 - local.get $0 + 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 $7 local.get $11 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 call $~lib/map/Map#values - local.tee $10 + local.tee $12 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21647,71 +21747,72 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + 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 31 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 $1 + local.tee $2 i32.store - local.get $1 + local.get $2 if - local.get $12 - local.get $1 + local.get $13 + local.get $2 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 $1 + local.tee $2 i32.store offset=8 - local.get $1 + local.get $2 if - local.get $12 - local.get $1 + local.get $13 + local.get $2 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 $13 + local.tee $7 i32.store offset=16 loop $for-loop|2 local.get $11 i32.load offset=12 - local.get $4 + local.get $0 i32.gt_s if + local.get $0 + local.tee $1 local.get $11 i32.load offset=12 - local.get $4 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -21722,18 +21823,18 @@ end local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.set $3 - local.get $10 - local.get $4 + local.set $4 + local.get $12 + local.get $1 call $~lib/array/Array#__get - local.set $14 - local.get $9 - local.get $3 + local.set $8 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -21744,8 +21845,8 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $14 + local.get $5 + local.get $8 i32.const 20 i32.sub f64.convert_i32_s @@ -21766,15 +21867,15 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $12 + local.get $13 i32.load - local.get $3 + local.get $4 i64.reinterpret_f64 - local.tee $5 + local.tee $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21784,7 +21885,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $5 + local.get $6 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21814,8 +21915,8 @@ i32.const 16 i32.shr_u i32.xor - local.tee $15 - local.get $12 + local.tee $14 + local.get $13 i32.load offset=4 i32.and i32.const 2 @@ -21829,19 +21930,19 @@ if local.get $0 i32.load offset=16 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $4 local.get $0 f64.load f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -21854,18 +21955,18 @@ local.get $0 if local.get $0 - local.get $3 + local.get $4 f64.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 @@ -21873,17 +21974,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 $16 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21891,20 +21992,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $16 + local.get $9 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -21912,47 +22013,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $15 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $12 + local.get $13 i32.load offset=8 - local.tee $2 - local.get $12 + local.tee $3 + local.get $13 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $8 - local.get $1 + local.set $16 + local.get $2 local.set $0 - loop $while-continue|02 - local.get $2 - local.get $8 + loop $while-continue|00 + local.get $3 + local.get $16 i32.ne if - local.get $2 + local.get $3 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $2 + local.get $3 f64.load local.tee $17 f64.store local.get $0 - local.get $2 + local.get $3 f64.load offset=8 f64.store offset=8 local.get $0 local.get $17 i64.reinterpret_f64 - local.tee $5 + local.tee $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21962,7 +22063,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $5 + local.get $6 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21992,11 +22093,11 @@ i32.const 16 i32.shr_u i32.xor - local.get $16 + local.get $9 i32.and i32.const 2 i32.shl - local.get $6 + local.get $10 i32.add local.tee $18 i32.load @@ -22009,39 +22110,39 @@ i32.add local.set $0 end - local.get $2 + local.get $3 i32.const 24 i32.add - local.set $2 - br $while-continue|02 + local.set $3 + br $while-continue|00 end end - local.get $12 - local.get $6 + local.get $13 + local.get $10 i32.store - local.get $6 + local.get $10 if - local.get $12 - local.get $6 + local.get $13 + local.get $10 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $16 + local.get $13 + local.get $9 i32.store offset=4 - local.get $12 - local.get $1 + local.get $13 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 if - local.get $12 - local.get $1 + local.get $13 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $12 - local.get $7 + local.get $13 + local.get $15 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 @@ -22050,48 +22151,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 $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 $3 + local.get $4 f64.store local.get $0 - local.get $3 + local.get $4 f64.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 + local.get $13 i32.load offset=4 - local.get $15 + local.get $14 i32.and 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 @@ -22099,21 +22200,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 - local.get $14 + local.get $7 + local.get $8 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|2 end end - local.get $12 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -22125,7 +22226,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -22138,14 +22239,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $4 loop $for-loop|3 - local.get $3 + local.get $4 f64.const 50 f64.lt if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -22156,10 +22257,10 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.trunc_f64_s i32.const 20 i32.add @@ -22172,11 +22273,11 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -22186,14 +22287,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 f64.const 1 f64.add - local.set $3 + local.set $4 br $for-loop|3 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -22206,14 +22307,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $4 loop $for-loop|4 - local.get $3 + local.get $4 f64.const 50 f64.lt if - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -22223,15 +22324,15 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 - local.get $3 + local.get $5 + local.get $4 + local.get $4 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -22242,11 +22343,11 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#delete - local.get $9 - local.get $3 + local.get $5 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -22256,14 +22357,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 f64.const 1 f64.add - local.set $3 + local.set $4 br $for-loop|4 end end - local.get $9 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -22275,9 +22376,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 @@ -22498,52 +22599,52 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 - local.get $3 + local.get $1 i32.load offset=8 local.tee $5 i32.const 1 @@ -22551,27 +22652,27 @@ if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $1 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -22607,7 +22708,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -22619,12 +22720,12 @@ local.get $5 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store8 + i32.add + local.tee $1 local.get $3 + i32.store8 + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -22633,7 +22734,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -22647,7 +22748,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -22754,6 +22855,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22781,7 +22883,7 @@ i32.load offset=16 local.tee $4 call $~lib/array/Array#constructor - local.tee $0 + local.tee $6 i32.store loop $for-loop|0 local.get $2 @@ -22799,15 +22901,16 @@ i32.and i32.eqz if - local.get $0 - local.get $1 - local.get $5 - i32.load offset=4 - call $~lib/array/Array#__set 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 end local.get $2 i32.const 1 @@ -22816,19 +22919,19 @@ br $for-loop|0 end end - local.get $0 + local.get $6 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $0 + local.get $6 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 $0 + local.get $6 ) (func $~lib/map/Map#constructor (result i32) (local $0 i32) @@ -22920,51 +23023,51 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 - local.get $3 + local.get $1 i32.load offset=8 local.tee $5 i32.const 1 @@ -22972,25 +23075,25 @@ if (result i32) i32.const 0 else - local.get $1 local.get $3 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -23026,7 +23129,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -23038,12 +23141,12 @@ local.get $5 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store + i32.add + local.tee $1 local.get $3 + i32.store + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -23052,7 +23155,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -23066,7 +23169,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -23096,53 +23199,53 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 - local.get $3 + local.get $1 i32.load offset=8 local.tee $5 i32.const 1 @@ -23150,27 +23253,27 @@ if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $1 + i32.load8_u + local.get $3 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -23206,7 +23309,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -23218,12 +23321,12 @@ local.get $5 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store8 + i32.add + local.tee $1 local.get $3 + i32.store8 + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -23232,7 +23335,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -23246,7 +23349,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -23276,52 +23379,52 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 - local.get $3 + local.get $1 i32.load offset=8 local.tee $5 i32.const 1 @@ -23329,27 +23432,27 @@ if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $1 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -23385,7 +23488,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -23397,12 +23500,12 @@ local.get $5 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store16 + i32.add + local.tee $1 local.get $3 + i32.store16 + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -23411,7 +23514,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -23425,7 +23528,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -23455,53 +23558,53 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 - local.get $3 + local.get $1 i32.load offset=8 local.tee $5 i32.const 1 @@ -23509,27 +23612,27 @@ if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $1 + i32.load16_u + local.get $3 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -23565,7 +23668,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -23577,12 +23680,12 @@ local.get $5 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store16 + i32.add + local.tee $1 local.get $3 + i32.store16 + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -23591,7 +23694,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -23605,7 +23708,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -23635,51 +23738,51 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 - local.get $3 + local.get $1 i32.load offset=8 local.tee $5 i32.const 1 @@ -23687,25 +23790,25 @@ if (result i32) i32.const 0 else - local.get $1 local.get $3 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -23741,7 +23844,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -23753,12 +23856,12 @@ local.get $5 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store + i32.add + local.tee $1 local.get $3 + i32.store + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -23767,7 +23870,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -23781,7 +23884,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -23811,62 +23914,61 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $3 if - local.get $3 local.get $3 i32.load offset=12 local.tee $5 @@ -23881,7 +23983,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $5 i32.const -2 i32.and @@ -23890,8 +23991,9 @@ end end i32.const 0 + local.set $3 end - local.tee $3 + local.get $3 if local.get $3 local.get $2 @@ -23983,6 +24085,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24010,7 +24113,7 @@ i32.load offset=16 local.tee $4 call $~lib/array/Array#constructor - local.tee $0 + local.tee $6 i32.store loop $for-loop|0 local.get $2 @@ -24028,15 +24131,16 @@ i32.and i32.eqz if - local.get $0 - local.get $1 - local.get $5 - i32.load offset=8 - call $~lib/array/Array#__set 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 end local.get $2 i32.const 1 @@ -24045,19 +24149,19 @@ br $for-loop|0 end end - local.get $0 + local.get $6 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $0 + local.get $6 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 $0 + local.get $6 ) (func $~lib/map/Map#set (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -24081,62 +24185,61 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $3 if - local.get $3 local.get $3 i32.load offset=12 local.tee $5 @@ -24151,7 +24254,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $5 i32.const -2 i32.and @@ -24160,8 +24262,9 @@ end end i32.const 0 + local.set $3 end - local.tee $3 + local.get $3 if local.get $3 local.get $2 @@ -24269,51 +24372,50 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $3 if - local.get $3 local.get $3 i32.load offset=8 local.tee $5 @@ -24328,7 +24430,6 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $5 i32.const -2 i32.and @@ -24337,8 +24438,9 @@ end end i32.const 0 + local.set $3 end - local.tee $3 + local.get $3 if local.get $3 local.get $2 @@ -24447,64 +24549,63 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i64.reinterpret_f64 - local.tee $4 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $3 if - local.get $3 local.get $3 i32.load offset=12 local.tee $6 @@ -24519,7 +24620,6 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $6 i32.const -2 i32.and @@ -24528,8 +24628,9 @@ end end i32.const 0 + local.set $3 end - local.tee $3 + local.get $3 if local.get $3 local.get $2 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 95bd63739f..45a5de7d71 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -4,9 +4,8 @@ (type $f32_f32_f32_=>_i32 (func (param f32 f32 f32) (result i32))) (type $f32_=>_f32 (func (param f32) (result f32))) (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) - (type $f64_f64_f64_f64_=>_i32 (func (param f64 f64 f64 f64) (result i32))) (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) - (type $f32_f32_f32_f32_=>_i32 (func (param f32 f32 f32 f32) (result i32))) + (type $f64_f64_f64_f64_=>_i32 (func (param f64 f64 f64 f64) (result i32))) (type $none_=>_f64 (func (result f64))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) @@ -14,6 +13,7 @@ (type $f64_i32_=>_f64 (func (param f64 i32) (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i64_=>_i32 (func (param i64) (result i32))) + (type $f32_f32_f32_f32_=>_i32 (func (param f32 f32 f32 f32) (result i32))) (type $i64_=>_none (func (param i64))) (type $f64_f64_i32_=>_f64 (func (param f64 f64 i32) (result f64))) (type $f64_=>_none (func (param f64))) @@ -739,12 +739,12 @@ f64.sub local.tee $3 f64.sqrt - local.tee $0 + local.tee $4 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $4 + local.tee $0 local.get $3 local.get $3 local.get $3 @@ -786,15 +786,15 @@ f64.const 1 f64.add f64.div - local.get $0 + local.get $4 f64.mul local.get $3 - local.get $4 - local.get $4 + local.get $0 + local.get $0 f64.mul f64.sub - local.get $0 local.get $4 + local.get $0 f64.add f64.div f64.add @@ -925,12 +925,12 @@ f32.sub local.tee $3 f32.sqrt - local.tee $0 + local.tee $4 i32.reinterpret_f32 i32.const -4096 i32.and f32.reinterpret_i32 - local.tee $4 + local.tee $0 local.get $3 local.get $3 local.get $3 @@ -948,15 +948,15 @@ f32.const 1 f32.add f32.div - local.get $0 + local.get $4 f32.mul local.get $3 - local.get $4 - local.get $4 + local.get $0 + local.get $0 f32.mul f32.sub - local.get $0 local.get $4 + local.get $0 f32.add f32.div f32.add @@ -1402,8 +1402,8 @@ end ) (func $std/math/test_acosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i64) - (local $4 f64) + (local $3 f64) + (local $4 i64) block $__inlined_func$~lib/math/NativeMath.acosh (result f64) local.get $0 local.get $0 @@ -1412,29 +1412,29 @@ f64.div local.get $0 i64.reinterpret_f64 - local.tee $3 + local.tee $4 i64.const 4607182418800017408 i64.lt_s br_if $__inlined_func$~lib/math/NativeMath.acosh drop - local.get $3 + local.get $4 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $3 + local.tee $4 i64.const 1024 i64.lt_u if local.get $0 f64.const 1 f64.sub - local.tee $4 - local.get $4 - local.get $4 + local.tee $3 + local.get $3 + local.get $3 f64.mul - local.get $4 - local.get $4 + local.get $3 + local.get $3 f64.add f64.add f64.sqrt @@ -1442,7 +1442,7 @@ call $~lib/math/NativeMath.log1p br $__inlined_func$~lib/math/NativeMath.acosh end - local.get $3 + local.get $4 i64.const 1049 i64.lt_u if @@ -1925,15 +1925,15 @@ f64.const 0.5 f64.mul f64.sub - local.tee $4 + local.tee $0 f64.sqrt - local.set $0 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - local.get $4 - local.get $4 + local.set $3 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 f64.const 3.479331075960212e-05 f64.mul f64.const 7.915349942898145e-04 @@ -1951,10 +1951,10 @@ f64.const 0.16666666666666666 f64.add f64.mul - local.get $4 - local.get $4 - local.get $4 - local.get $4 + local.get $0 + local.get $0 + local.get $0 + local.get $0 f64.const 0.07703815055590194 f64.mul f64.const -0.6882839716054533 @@ -1969,15 +1969,15 @@ f64.const 1 f64.add f64.div - local.set $3 + local.set $4 local.get $1 i32.const 1072640819 i32.ge_u if (result f64) f64.const 1.5707963267948966 - local.get $0 - local.get $0 local.get $3 + local.get $3 + local.get $4 f64.mul f64.add f64.const 2 @@ -1987,24 +1987,24 @@ f64.sub else f64.const 0.7853981633974483 - local.get $0 - local.get $0 - f64.add local.get $3 + local.get $3 + f64.add + local.get $4 f64.mul f64.const 6.123233995736766e-17 - local.get $4 local.get $0 + local.get $3 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 f64.mul f64.sub - local.get $0 local.get $3 + local.get $0 f64.add f64.div f64.const 2 @@ -2012,8 +2012,8 @@ f64.sub f64.sub f64.const 0.7853981633974483 - local.get $3 - local.get $3 + local.get $0 + local.get $0 f64.add f64.sub f64.sub @@ -2032,8 +2032,8 @@ ) (func $~lib/math/NativeMathf.asin (param $0 f32) (result f32) (local $1 i32) - (local $2 f32) - (local $3 f64) + (local $2 f64) + (local $3 f32) local.get $0 i32.reinterpret_f32 i32.const 2147483647 @@ -2108,14 +2108,14 @@ f32.const 0.5 f32.mul f32.sub - local.tee $2 + local.tee $3 f64.promote_f32 f64.sqrt - local.tee $3 - local.get $3 - local.get $2 - local.get $2 + local.tee $2 local.get $2 + local.get $3 + local.get $3 + local.get $3 f32.const -0.008656363002955914 f32.mul f32.const -0.04274342209100723 @@ -2124,7 +2124,7 @@ f32.const 0.16666586697101593 f32.add f32.mul - local.get $2 + local.get $3 f32.const -0.7066296339035034 f32.mul f32.const 1 @@ -3025,14 +3025,11 @@ i32.const 0 end ) - (func $std/math/test_atan2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) + (func $~lib/math/NativeMathf.atan2 (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - block $__inlined_func$~lib/math/NativeMathf.atan2 (result f32) - local.get $1 - local.get $0 - f32.add + block $folding-inner0 local.get $0 local.get $0 f32.ne @@ -3040,128 +3037,118 @@ local.get $1 f32.ne i32.or - br_if $__inlined_func$~lib/math/NativeMathf.atan2 - drop + if + local.get $1 + local.get $0 + f32.add + return + end local.get $1 i32.reinterpret_f32 - local.tee $5 + local.tee $3 i32.const 1065353216 i32.eq if local.get $0 call $~lib/math/NativeMathf.atan - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end - local.get $5 + local.get $3 i32.const 30 i32.shr_u i32.const 2 i32.and local.get $0 i32.reinterpret_f32 - local.tee $6 + local.tee $4 i32.const 31 i32.shr_u i32.or - local.set $4 - local.get $6 + local.set $2 + local.get $4 i32.const 2147483647 i32.and - local.tee $6 + local.tee $4 i32.eqz if block $break|0 block $case3|0 block $case2|0 block $case1|0 - local.get $4 + local.get $2 br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0 end local.get $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end f32.const 3.1415927410125732 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end f32.const -3.1415927410125732 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end end - f32.const -1.5707963705062866 - f32.const 1.5707963705062866 - local.get $4 - i32.const 1 - i32.and - select - local.get $5 + local.get $3 i32.const 2147483647 i32.and - local.tee $5 + local.tee $3 i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.atan2 - drop - local.get $5 + br_if $folding-inner0 + local.get $3 i32.const 2139095040 i32.eq if - local.get $6 + local.get $4 i32.const 2139095040 i32.eq if (result f32) f32.const 2.356194496154785 f32.const 0.7853981852531433 - local.get $4 + local.get $2 i32.const 2 i32.and select local.tee $0 f32.neg local.get $0 - local.get $4 + local.get $2 i32.const 1 i32.and select else f32.const 3.1415927410125732 f32.const 0 - local.get $4 + local.get $2 i32.const 2 i32.and select local.tee $0 f32.neg local.get $0 - local.get $4 + local.get $2 i32.const 1 i32.and select end - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end - f32.const -1.5707963705062866 - f32.const 1.5707963705062866 local.get $4 - i32.const 1 - i32.and - select - local.get $6 i32.const 2139095040 i32.eq - local.get $6 - local.get $5 + local.get $4 + local.get $3 i32.const 218103808 i32.add i32.gt_u i32.or - br_if $__inlined_func$~lib/math/NativeMathf.atan2 - drop - local.get $5 - local.get $6 + br_if $folding-inner0 + local.get $3 + local.get $4 i32.const 218103808 i32.add i32.gt_u i32.const 0 - local.get $4 + local.get $2 i32.const 2 i32.and select @@ -3180,35 +3167,38 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $4 + local.get $2 br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 end local.get $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end local.get $0 f32.neg - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end f32.const 3.1415927410125732 local.get $0 f32.const -8.742277657347586e-08 f32.sub f32.sub - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end local.get $0 f32.const -8.742277657347586e-08 f32.sub f32.const 3.1415927410125732 f32.sub - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end unreachable end + f32.const -1.5707963705062866 + f32.const 1.5707963705062866 local.get $2 - local.get $3 - call $std/math/check + i32.const 1 + i32.and + select ) (func $std/math/test_cbrt (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 i32) @@ -3402,38 +3392,38 @@ f64.mul local.get $3 f64.mul - local.set $6 + local.set $7 local.get $3 local.get $0 f64.promote_f32 - local.tee $7 - local.get $7 + local.tee $6 + local.get $6 f64.add local.tee $3 - local.get $6 + local.get $7 f64.add f64.mul - local.get $7 local.get $6 + local.get $7 f64.add - local.get $6 + local.get $7 f64.add f64.div - local.tee $8 - local.get $8 + local.tee $7 + local.get $7 f64.mul - local.get $8 + local.get $7 f64.mul - local.set $6 - local.get $8 + local.set $8 + local.get $7 local.get $3 - local.get $6 + local.get $8 f64.add f64.mul - local.get $7 local.get $6 + local.get $8 f64.add - local.get $6 + local.get $8 f64.add f64.div f32.demote_f64 @@ -5867,166 +5857,169 @@ (local $4 i64) (local $5 i64) (local $6 i64) - (local $7 f64) - (local $8 f64) + (local $7 i32) + (local $8 i32) (local $9 f64) - (local $10 i32) + (local $10 f64) (local $11 f64) - (local $12 i32) + (local $12 f64) (local $13 f64) - block $__inlined_func$~lib/math/NativeMath.hypot (result f64) - local.get $1 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $5 - local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $4 - i64.gt_u - if - local.get $4 - local.get $5 - local.set $4 - local.set $5 - end + local.get $1 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $5 + local.get $0 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $4 + i64.gt_u + if + local.get $4 local.get $5 - f64.reinterpret_i64 - local.tee $1 + local.set $4 + local.set $5 + end + local.get $5 + f64.reinterpret_i64 + local.tee $9 + local.set $0 + block $__inlined_func$~lib/math/NativeMath.hypot local.get $5 i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $10 + local.tee $7 i32.const 2047 i32.eq br_if $__inlined_func$~lib/math/NativeMath.hypot - drop local.get $4 f64.reinterpret_i64 - local.tee $0 + local.tee $1 + local.set $0 local.get $5 i64.eqz local.get $4 i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $12 + local.tee $8 i32.const 2047 i32.eq i32.or br_if $__inlined_func$~lib/math/NativeMath.hypot - drop - local.get $0 local.get $1 + local.get $9 f64.add - local.get $12 - local.get $10 + local.set $0 + local.get $8 + local.get $7 i32.sub i32.const 64 i32.gt_s br_if $__inlined_func$~lib/math/NativeMath.hypot - drop f64.const 1 - local.set $11 - local.get $12 + local.set $0 + local.get $8 i32.const 1533 i32.gt_u if (result f64) f64.const 5260135901548373507240989e186 - local.set $11 + local.set $0 local.get $1 f64.const 1.90109156629516e-211 f64.mul local.set $1 - local.get $0 + local.get $9 f64.const 1.90109156629516e-211 f64.mul else - local.get $10 + local.get $7 i32.const 573 i32.lt_u if (result f64) f64.const 1.90109156629516e-211 - local.set $11 + local.set $0 local.get $1 f64.const 5260135901548373507240989e186 f64.mul local.set $1 - local.get $0 + local.get $9 f64.const 5260135901548373507240989e186 f64.mul else - local.get $0 + local.get $9 end end - local.tee $7 - local.get $7 - local.get $7 + local.set $9 + local.get $1 + local.get $1 + local.get $1 f64.const 134217729 f64.mul - local.tee $0 + local.tee $10 f64.sub - local.get $0 + local.get $10 f64.add - local.tee $0 + local.tee $10 f64.sub - local.set $9 - local.get $1 - local.get $1 - local.get $1 + local.set $12 + local.get $9 + local.get $9 + local.get $9 f64.const 134217729 f64.mul - local.tee $8 + local.tee $11 f64.sub - local.get $8 + local.get $11 f64.add - local.tee $13 + local.tee $11 f64.sub - local.set $8 + local.set $13 + local.get $0 + local.get $11 local.get $11 - local.get $13 - local.get $13 f64.mul - local.get $1 - local.get $1 + local.get $9 + local.get $9 f64.mul - local.tee $1 + local.tee $0 f64.sub - local.get $13 - local.get $13 + local.get $11 + local.get $11 f64.add - local.get $8 + local.get $13 f64.add - local.get $8 + local.get $13 f64.mul f64.add - local.get $0 - local.get $0 + local.get $10 + local.get $10 f64.mul - local.get $7 - local.get $7 + local.get $1 + local.get $1 f64.mul - local.tee $7 + local.tee $1 f64.sub - local.get $0 - local.get $0 + local.get $10 + local.get $10 f64.add - local.get $9 + local.get $12 f64.add - local.get $9 + local.get $12 f64.mul f64.add f64.add - local.get $1 + local.get $0 f64.add - local.get $7 + local.get $1 f64.add f64.sqrt f64.mul + local.set $0 end + local.get $0 local.get $2 local.get $3 call $std/math/check @@ -6036,7 +6029,6 @@ (local $5 i32) (local $6 i32) (local $7 f64) - (local $8 f32) block $__inlined_func$~lib/math/NativeMathf.hypot (result f32) local.get $1 i32.reinterpret_f32 @@ -6055,6 +6047,9 @@ local.set $4 local.set $5 end + local.get $4 + f32.reinterpret_i32 + local.set $0 local.get $5 f32.reinterpret_i32 local.tee $1 @@ -6063,9 +6058,7 @@ i32.eq br_if $__inlined_func$~lib/math/NativeMathf.hypot drop - local.get $4 - f32.reinterpret_i32 - local.tee $8 + local.get $0 local.get $1 f32.add local.get $5 @@ -6082,42 +6075,38 @@ i32.or br_if $__inlined_func$~lib/math/NativeMathf.hypot drop - f32.const 1 - local.set $0 local.get $4 i32.const 1568669696 i32.ge_u if (result f32) - f32.const 1237940039285380274899124e3 + local.get $0 + f32.const 8.077935669463161e-28 + f32.mul local.set $0 local.get $1 f32.const 8.077935669463161e-28 f32.mul local.set $1 - local.get $8 - f32.const 8.077935669463161e-28 - f32.mul + f32.const 1237940039285380274899124e3 else local.get $5 i32.const 562036736 i32.lt_u if (result f32) - f32.const 8.077935669463161e-28 + local.get $0 + f32.const 1237940039285380274899124e3 + f32.mul local.set $0 local.get $1 f32.const 1237940039285380274899124e3 f32.mul local.set $1 - local.get $8 - f32.const 1237940039285380274899124e3 - f32.mul + f32.const 8.077935669463161e-28 else - local.get $8 + f32.const 1 end end - local.set $8 local.get $0 - local.get $8 f64.promote_f32 local.tee $7 local.get $7 @@ -6350,8 +6339,8 @@ ) (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 i32) - (local $4 i32) - (local $5 f32) + (local $4 f32) + (local $5 i32) (local $6 f32) (local $7 f32) (local $8 f32) @@ -6389,7 +6378,7 @@ br_if $__inlined_func$~lib/math/NativeMathf.log10 drop i32.const -25 - local.set $4 + local.set $5 local.get $0 f32.const 33554432 f32.mul @@ -6430,8 +6419,8 @@ local.tee $0 local.get $0 f32.mul - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f32.mul local.set $8 local.get $3 @@ -6439,7 +6428,7 @@ i32.shr_u i32.const 127 i32.sub - local.get $4 + local.get $5 i32.add f32.convert_i32_s local.tee $6 @@ -6464,7 +6453,7 @@ f32.sub local.get $0 local.get $7 - local.get $5 + local.get $4 local.get $8 f32.const 0.2849878668785095 f32.mul @@ -10024,81 +10013,86 @@ ) (func $std/math/test_sinh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) - (local $4 i32) - (local $5 i64) - (local $6 f64) - block $__inlined_func$~lib/math/NativeMath.sinh (result f64) - local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $5 - f64.reinterpret_i64 - local.set $6 - f64.const 0.5 - local.get $0 - f64.copysign - local.set $3 - local.get $5 + (local $4 f64) + (local $5 i32) + (local $6 i64) + (local $7 f64) + local.get $0 + local.set $3 + local.get $0 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $6 + f64.reinterpret_i64 + local.set $7 + f64.const 0.5 + local.get $0 + f64.copysign + local.set $4 + block $__inlined_func$~lib/math/NativeMath.sinh + local.get $6 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $5 i32.const 1082535490 i32.lt_u if - local.get $6 + local.get $7 call $~lib/math/NativeMath.expm1 - local.set $6 - local.get $4 + local.set $7 + local.get $5 i32.const 1072693248 i32.lt_u if - local.get $0 - local.get $4 + local.get $5 i32.const 1045430272 i32.lt_u br_if $__inlined_func$~lib/math/NativeMath.sinh - drop - local.get $3 - local.get $6 - local.get $6 + local.get $4 + local.get $7 + local.get $7 f64.add - local.get $6 - local.get $6 + local.get $7 + local.get $7 f64.mul - local.get $6 + local.get $7 f64.const 1 f64.add f64.div f64.sub f64.mul + local.set $3 br $__inlined_func$~lib/math/NativeMath.sinh end - local.get $3 - local.get $6 - local.get $6 - local.get $6 + local.get $4 + local.get $7 + local.get $7 + local.get $7 f64.const 1 f64.add f64.div f64.add f64.mul + local.set $3 br $__inlined_func$~lib/math/NativeMath.sinh end - local.get $6 + local.get $7 f64.const 1416.0996898839683 f64.sub call $~lib/math/NativeMath.exp - local.get $3 - local.get $3 + local.get $4 + local.get $4 f64.add f64.const 2247116418577894884661631e283 f64.mul f64.mul f64.const 2247116418577894884661631e283 f64.mul + local.set $3 end + local.get $3 local.get $1 local.get $2 call $std/math/check @@ -10116,18 +10110,18 @@ (local $3 f32) (local $4 i32) (local $5 f32) - block $__inlined_func$~lib/math/NativeMathf.sinh (result f32) - local.get $0 - i32.reinterpret_f32 - i32.const 2147483647 - i32.and - local.tee $4 - f32.reinterpret_i32 - local.set $5 - f32.const 0.5 - local.get $0 - f32.copysign - local.set $3 + local.get $0 + i32.reinterpret_f32 + i32.const 2147483647 + i32.and + local.tee $4 + f32.reinterpret_i32 + local.set $5 + f32.const 0.5 + local.get $0 + f32.copysign + local.set $3 + block $__inlined_func$~lib/math/NativeMathf.sinh local.get $4 i32.const 1118925335 i32.lt_u @@ -10139,12 +10133,10 @@ i32.const 1065353216 i32.lt_u if - local.get $0 local.get $4 i32.const 964689920 i32.lt_u br_if $__inlined_func$~lib/math/NativeMathf.sinh - drop local.get $3 local.get $5 local.get $5 @@ -10158,6 +10150,7 @@ f32.div f32.sub f32.mul + local.set $0 br $__inlined_func$~lib/math/NativeMathf.sinh end local.get $3 @@ -10169,6 +10162,7 @@ f32.div f32.add f32.mul + local.set $0 br $__inlined_func$~lib/math/NativeMathf.sinh end local.get $5 @@ -10183,7 +10177,9 @@ f32.mul f32.const 1661534994731144841129758e11 f32.mul + local.set $0 end + local.get $0 local.get $1 local.get $2 call $std/math/check @@ -18001,9 +17997,10 @@ end f32.const -8.066848754882812 f32.const 4.535662651062012 + call $~lib/math/NativeMathf.atan2 f32.const -1.0585895776748657 f32.const -0.22352588176727295 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18015,9 +18012,10 @@ end f32.const 4.345239639282227 f32.const -8.887990951538086 + call $~lib/math/NativeMathf.atan2 f32.const 2.686873435974121 f32.const 0.09464472532272339 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18029,9 +18027,10 @@ end f32.const -8.381433486938477 f32.const -2.7636072635650635 + call $~lib/math/NativeMathf.atan2 f32.const -1.8893001079559326 f32.const -0.21941901743412018 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18043,9 +18042,10 @@ end f32.const -6.531673431396484 f32.const 4.567535400390625 + call $~lib/math/NativeMathf.atan2 f32.const -0.9605468511581421 f32.const 0.46015575528144836 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18057,9 +18057,10 @@ end f32.const 9.267057418823242 f32.const 4.811392307281494 + call $~lib/math/NativeMathf.atan2 f32.const 1.0919123888015747 f32.const -0.05708503723144531 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18071,9 +18072,10 @@ end f32.const -6.450045585632324 f32.const 0.6620717644691467 + call $~lib/math/NativeMathf.atan2 f32.const -1.4685084819793701 f32.const 0.19611206650733948 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18085,9 +18087,10 @@ end f32.const 7.858890056610107 f32.const 0.052154526114463806 + call $~lib/math/NativeMathf.atan2 f32.const 1.5641601085662842 f32.const 0.48143187165260315 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18099,9 +18102,10 @@ end f32.const -0.7920545339584351 f32.const 7.676402568817139 + call $~lib/math/NativeMathf.atan2 f32.const -0.10281659662723541 f32.const -0.4216274917125702 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18113,9 +18117,10 @@ end f32.const 0.6157026886940002 f32.const 2.0119025707244873 + call $~lib/math/NativeMathf.atan2 f32.const 0.29697975516319275 f32.const 0.2322007566690445 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18127,9 +18132,10 @@ end f32.const -0.5587586760520935 f32.const 0.03223983198404312 + call $~lib/math/NativeMathf.atan2 f32.const -1.5131611824035645 f32.const 0.16620726883411407 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18141,9 +18147,10 @@ end f32.const 0 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18155,9 +18162,10 @@ end f32.const 0 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18169,9 +18177,10 @@ end f32.const 0 f32.const -1 + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18183,9 +18192,10 @@ end f32.const 0 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18197,9 +18207,10 @@ end f32.const 0 f32.const 1 + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18211,9 +18222,10 @@ end f32.const 0 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18225,9 +18237,10 @@ end f32.const -0 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18239,9 +18252,10 @@ end f32.const -0 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18253,9 +18267,10 @@ end f32.const -0 f32.const -1 + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18267,9 +18282,10 @@ end f32.const -0 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18281,9 +18297,10 @@ end f32.const -0 f32.const 1 + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18295,9 +18312,10 @@ end f32.const -0 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18309,9 +18327,10 @@ end f32.const -1 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18323,9 +18342,10 @@ end f32.const -1 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18337,9 +18357,10 @@ end f32.const 1 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18351,9 +18372,10 @@ end f32.const 1 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18365,9 +18387,10 @@ end f32.const -1 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18379,9 +18402,10 @@ end f32.const 1 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18393,9 +18417,10 @@ end f32.const -1 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18407,9 +18432,10 @@ end f32.const 1 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18421,9 +18447,10 @@ end f32.const inf f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18435,9 +18462,10 @@ end f32.const -inf f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18449,9 +18477,10 @@ end f32.const inf f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const 0.7853981852531433 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18463,9 +18492,10 @@ end f32.const inf f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const 2.356194496154785 f32.const 0.02500828728079796 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18477,9 +18507,10 @@ end f32.const -inf f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const -0.7853981852531433 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18491,9 +18522,10 @@ end f32.const -inf f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const -2.356194496154785 f32.const -0.02500828728079796 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18505,9 +18537,10 @@ end f32.const 5.877471754111438e-39 f32.const 1 + call $~lib/math/NativeMathf.atan2 f32.const 5.877471754111438e-39 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18519,9 +18552,10 @@ end f32.const 1 f32.const 1701411834604692317316873e14 + call $~lib/math/NativeMathf.atan2 f32.const 5.877471754111438e-39 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -44036,9 +44070,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 797cbb8408..27e13d7352 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -679,38 +679,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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 @@ -1090,13 +1088,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -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,11 +1242,11 @@ 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -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 @@ -1284,7 +1282,7 @@ local.get $0 i32.const 8 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1295,12 +1293,12 @@ local.get $0 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1308,12 +1306,12 @@ local.get $0 i32.const 0 i32.store8 offset=3 - local.get $2 + 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 @@ -1378,19 +1376,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1400,22 +1398,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17860 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1429,7 +1427,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1441,7 +1439,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1449,15 +1447,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1465,7 +1463,7 @@ else i32.const 1440 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1475,7 +1473,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -1493,25 +1491,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/std/object.optimized.wat b/tests/compiler/std/object.optimized.wat index 3eefe0db84..cc99235291 100644 --- a/tests/compiler/std/object.optimized.wat +++ b/tests/compiler/std/object.optimized.wat @@ -21,6 +21,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -55,47 +56,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -106,17 +107,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -129,7 +129,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~start diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index efaa0b6304..2c34b2475b 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -738,38 +738,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1097,13 +1095,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1194,17 +1192,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1213,19 +1211,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1255,8 +1253,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1286,36 +1284,37 @@ i32.const 20 i32.add local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 8 i32.add - local.tee $1 + local.tee $2 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 $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 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 $2 i32.const 4 i32.sub i32.const 0 @@ -3476,19 +3475,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -3498,22 +3497,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17956 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -3527,7 +3526,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -3539,7 +3538,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -3547,15 +3546,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -3563,7 +3562,7 @@ else i32.const 1520 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -3573,7 +3572,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1524 @@ -3591,25 +3590,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index b439c19c0f..445ebedfe3 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -202,19 +202,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -826,38 +824,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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 + 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) @@ -1459,11 +1455,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1474,19 +1470,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1494,7 +1491,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1505,16 +1502,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -1525,16 +1522,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1542,7 +1539,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1550,8 +1547,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1568,7 +1565,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1578,13 +1575,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1597,40 +1594,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -1660,8 +1657,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1783,23 +1780,23 @@ 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 @@ -1862,52 +1859,52 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + local.tee $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + 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 $2 + local.get $1 i32.load offset=4 local.tee $4 i32.const 1 @@ -1915,24 +1912,25 @@ if (result i32) i32.const 0 else - local.get $2 - i32.load8_u local.get $1 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop 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 $1 end + local.get $1 i32.eqz if local.get $0 @@ -1966,7 +1964,7 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $1 local.get $0 local.get $0 i32.load offset=16 @@ -1977,10 +1975,10 @@ local.get $4 i32.const 3 i32.shl - local.get $2 - i32.add - local.tee $2 local.get $1 + i32.add + local.tee $1 + local.get $2 i32.store8 local.get $0 local.get $0 @@ -1988,7 +1986,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + local.get $1 local.get $0 i32.load local.get $0 @@ -2002,7 +2000,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store end ) @@ -2688,313 +2686,313 @@ i32.store8 end ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 - i32.const 20 - i32.sub - local.tee $2 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u - if - local.get $2 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $4 - local.get $1 + i32.load offset=8 + local.tee $8 local.get $2 - i32.load offset=16 - local.tee $2 + i32.shr_u local.get $1 - local.get $2 i32.lt_u - select - local.set $5 - block $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.tee $1 - local.get $0 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 + if + i32.const 1073741820 + local.get $2 + i32.shr_u local.get $1 - i32.sub - local.get $5 - i32.sub - i32.const 0 - local.get $5 - i32.const 1 - i32.shl - i32.sub - i32.le_u + i32.lt_u if - local.get $1 - local.get $0 - local.get $5 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 + i32.const 1456 + i32.const 1616 + i32.const 18 + i32.const 48 + call $~lib/builtins/abort + unreachable end local.get $0 + i32.load + local.set $7 + local.get $1 + i32.const 8 local.get $1 + i32.const 8 i32.gt_u - if - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 + select + local.get $2 + i32.shl + local.set $6 + block $__inlined_func$~lib/rt/itcms/__renew + local.get $3 + if + local.get $8 + i32.const 1 + i32.shl + local.tee $1 + i32.const 1073741820 + local.get $1 + i32.const 1073741820 + i32.lt_u + select + local.tee $1 + local.get $6 + local.get $1 + local.get $6 + i32.gt_u + select + local.set $6 + end + local.get $6 + local.get $7 + local.tee $1 + i32.const 20 + i32.sub + local.tee $2 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $6 + i32.store offset=16 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $6 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $3 + local.get $6 + local.get $2 + i32.load offset=16 + local.tee $2 + local.get $2 + local.get $6 + i32.gt_u + select + local.set $9 + block $~lib/util/memory/memmove|inlined.0 + local.get $3 + local.tee $2 + local.get $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $2 + i32.sub + local.get $9 + i32.sub + i32.const 0 + local.get $9 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $2 + local.get $1 + local.get $9 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $1 + local.get $2 + i32.gt_u + if local.get $1 i32.const 7 i32.and + local.get $2 + i32.const 7 + i32.and + i32.eq if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - local.get $2 - local.get $3 - i32.load8_u - i32.store8 - br $while-continue|0 + loop $while-continue|0 + local.get $2 + i32.const 7 + i32.and + if + local.get $9 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $9 + i32.const 1 + i32.sub + local.set $9 + local.get $2 + local.tee $5 + i32.const 1 + i32.add + local.set $2 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $5 + local.get $4 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $9 + i32.const 8 + i32.ge_u + if + local.get $2 + local.get $1 + i64.load + i64.store + local.get $9 + i32.const 8 + i32.sub + local.set $9 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end end - end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $1 - local.get $0 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - 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 + loop $while-continue|2 + local.get $9 + if + local.get $2 + local.tee $5 + i32.const 1 + i32.add + local.set $2 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $5 + local.get $4 + i32.load8_u + i32.store8 + local.get $9 + i32.const 1 + i32.sub + local.set $9 + br $while-continue|2 + end end - end - end - loop $while-continue|2 - local.get $5 - if + else local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 + i32.const 7 + i32.and local.get $2 - local.get $3 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $1 - local.get $5 - i32.add i32.const 7 i32.and + i32.eq if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 + loop $while-continue|3 + local.get $2 + local.get $9 + i32.add + i32.const 7 + i32.and + if + local.get $9 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $9 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + i32.add + local.get $1 + local.get $9 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $9 + i32.const 8 + i32.ge_u + if + local.get $9 + i32.const 8 + i32.sub + local.tee $9 + local.get $2 + i32.add + local.get $1 + local.get $9 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i64.load - i64.store - br $while-continue|4 + loop $while-continue|5 + local.get $9 + if + local.get $9 + i32.const 1 + i32.sub + local.tee $9 + local.get $2 + i32.add + local.get $1 + local.get $9 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end end end end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - local.get $4 - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - local.get $0 - i32.load offset=8 - local.tee $4 - local.get $2 - i32.shr_u - local.get $1 - i32.lt_u - if - i32.const 1073741820 - local.get $2 - i32.shr_u - local.get $1 - i32.lt_u - if - i32.const 1456 - i32.const 1616 - i32.const 18 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 8 - local.get $1 - i32.const 8 - i32.gt_u - select - local.get $2 - i32.shl - local.set $1 - local.get $0 - i32.load - local.tee $2 - local.get $3 - if - local.get $4 - i32.const 1 - i32.shl - local.tee $3 - i32.const 1073741820 local.get $3 - i32.const 1073741820 - i32.lt_u - select - local.tee $3 - local.get $1 - local.get $1 - local.get $3 - i32.lt_u - select local.set $1 end local.get $1 - call $~lib/rt/itcms/__renew - local.tee $3 - local.get $4 + local.get $8 i32.add - local.get $1 - local.get $4 + local.get $6 + local.get $8 i32.sub call $~lib/memory/memory.fill - local.get $2 - local.get $3 + local.get $1 + local.get $7 i32.ne if local.get $0 - local.get $3 + local.get $1 i32.store local.get $0 - local.get $3 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 if local.get $0 - local.get $3 + local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end end local.get $0 - local.get $1 + local.get $6 i32.store offset=8 end ) @@ -3057,51 +3055,50 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -3118,7 +3115,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -3127,8 +3123,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -3251,7 +3248,7 @@ local.tee $4 i32.store loop $for-loop|1 - local.get $2 + local.get $1 i32.extend8_s i32.const 100 i32.lt_s @@ -3260,7 +3257,8 @@ i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $1 + local.tee $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -3270,36 +3268,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $5 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $5 if - local.get $3 + local.get $5 i32.load offset=4 local.tee $6 i32.const 1 @@ -3307,9 +3305,9 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 i32.load8_u - local.get $2 + local.get $3 i32.const 255 i32.and i32.eq @@ -3318,14 +3316,14 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $5 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $5 if i32.const 0 i32.const 1568 @@ -3335,13 +3333,14 @@ unreachable end local.get $4 - local.get $2 + local.get $1 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $1 + local.tee $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -3351,36 +3350,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $5 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $3 + local.get $5 if - local.get $3 + local.get $5 i32.load offset=4 local.tee $6 i32.const 1 @@ -3388,9 +3387,9 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 i32.load8_u - local.get $2 + local.get $3 i32.const 255 i32.and i32.eq @@ -3399,14 +3398,16 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $5 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -3416,10 +3417,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 @@ -3436,9 +3437,9 @@ unreachable end i32.const 50 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 i32.extend8_s i32.const 100 i32.lt_s @@ -3447,7 +3448,8 @@ i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $1 + local.tee $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -3457,36 +3459,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $5 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $3 + local.get $5 if - local.get $3 + local.get $5 i32.load offset=4 local.tee $6 i32.const 1 @@ -3494,9 +3496,9 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 i32.load8_u - local.get $2 + local.get $3 i32.const 255 i32.and i32.eq @@ -3505,14 +3507,16 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $5 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -3523,13 +3527,14 @@ unreachable end local.get $4 - local.get $2 + local.get $1 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $1 + local.tee $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -3539,36 +3544,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $5 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $3 + local.get $5 if - local.get $3 + local.get $5 i32.load offset=4 local.tee $6 i32.const 1 @@ -3576,9 +3581,9 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 i32.load8_u - local.get $2 + local.get $3 i32.const 255 i32.and i32.eq @@ -3587,14 +3592,16 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $5 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -3604,10 +3611,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 @@ -3624,8 +3631,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3634,17 +3640,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $7 i32.const 0 i32.store local.get $4 i32.load offset=8 - local.set $2 + local.set $5 local.get $4 i32.load offset=16 - local.tee $7 + local.tee $3 local.set $9 - local.get $6 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3653,10 +3659,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $1 i64.const 0 i64.store - local.get $8 + local.get $1 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new @@ -3692,28 +3698,28 @@ i32.const 8 i32.gt_u select - local.tee $11 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $11 i32.store offset=4 - local.get $8 local.get $11 + local.get $1 call $~lib/memory/memory.fill local.get $10 - local.get $8 + local.get $11 i32.store - local.get $8 + local.get $11 if local.get $10 - local.get $8 + local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $10 - local.get $8 + local.get $11 i32.store offset=4 local.get $10 - local.get $11 + local.get $1 i32.store offset=8 local.get $10 local.get $9 @@ -3722,70 +3728,77 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 local.get $10 i32.store loop $for-loop|0 - local.get $5 - local.get $7 - i32.lt_s + local.get $3 + local.get $8 + i32.gt_s if - local.get $5 + local.get $8 i32.const 3 i32.shl - local.get $2 + local.get $5 i32.add - local.tee $6 + local.tee $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $10 - local.get $0 - local.get $6 + local.get $1 + local.get $7 i32.load8_s call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|0 end end local.get $10 - local.get $0 + local.get $2 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity local.get $10 - local.get $0 + local.get $2 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 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 loop $for-loop|4 local.get $10 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if local.get $10 - local.get $1 + local.get $0 call $~lib/array/Array#__get - local.tee $2 + local.set $2 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -3795,41 +3808,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.set $3 - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 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 @@ -3837,7 +3845,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $1 i32.load8_u local.get $2 i32.const 255 @@ -3848,14 +3856,16 @@ 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.const 0 + i32.ne i32.eqz if i32.const 0 @@ -3865,19 +3875,19 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 local.get $10 - local.get $1 + local.get $0 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|4 end end - local.get $0 + local.get $3 i32.load offset=20 local.get $4 i32.load offset=20 @@ -3891,9 +3901,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 @@ -3902,7 +3912,8 @@ i32.load local.get $4 i32.load offset=4 - local.get $1 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3912,44 +3923,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 - local.tee $0 + 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 i32.const 255 @@ -3957,17 +3968,19 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|014 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 if i32.const 0 @@ -3978,13 +3991,14 @@ 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.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3994,44 +4008,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 - local.tee $0 + 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 i32.const 255 @@ -4039,17 +4053,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|017 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 @@ -4058,10 +4072,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 @@ -4078,9 +4092,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 @@ -4089,7 +4103,8 @@ i32.load local.get $4 i32.load offset=4 - local.get $1 + local.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4099,44 +4114,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 - local.tee $0 + 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 i32.const 255 @@ -4144,17 +4159,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|020 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 @@ -4164,13 +4179,14 @@ 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 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4180,44 +4196,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 - local.tee $0 + 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 i32.const 255 @@ -4225,17 +4241,19 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|023 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 if i32.const 0 @@ -4246,13 +4264,14 @@ 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.get $0 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4262,44 +4281,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 - local.tee $0 + 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 i32.const 255 @@ -4307,17 +4326,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|026 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 @@ -4326,10 +4345,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 @@ -4459,23 +4478,23 @@ 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 @@ -4538,53 +4557,53 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + local.tee $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + 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 $2 + local.get $1 i32.load offset=4 local.tee $4 i32.const 1 @@ -4592,24 +4611,25 @@ if (result i32) i32.const 0 else - local.get $2 - i32.load8_u local.get $1 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop 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 $1 end + local.get $1 i32.eqz if local.get $0 @@ -4643,7 +4663,7 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $1 local.get $0 local.get $0 i32.load offset=16 @@ -4654,10 +4674,10 @@ local.get $4 i32.const 3 i32.shl - local.get $2 - i32.add - local.tee $2 local.get $1 + i32.add + local.tee $1 + local.get $2 i32.store8 local.get $0 local.get $0 @@ -4665,7 +4685,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + local.get $1 local.get $0 i32.load local.get $0 @@ -4679,7 +4699,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store end ) @@ -4705,52 +4725,51 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -4767,7 +4786,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -4776,8 +4794,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -4860,7 +4879,7 @@ i32.store offset=8 local.get $3 call $~lib/set/Set#constructor - local.tee $10 + local.tee $4 i32.store loop $for-loop|1 local.get $1 @@ -4869,52 +4888,51 @@ i32.const 100 i32.lt_u if - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $1 - local.tee $3 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $1 + local.tee $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $5 if - local.get $5 local.get $5 i32.load offset=4 local.tee $6 @@ -4931,7 +4949,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $6 i32.const -2 i32.and @@ -4940,7 +4957,9 @@ end end i32.const 0 + local.set $5 end + local.get $5 if i32.const 0 i32.const 1568 @@ -4949,55 +4968,54 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 local.get $1 call $~lib/set/Set#add - block $__inlined_func$~lib/set/Set#find1 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $1 - local.tee $3 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $1 + local.tee $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 local.get $5 if - local.get $5 local.get $5 i32.load offset=4 local.tee $6 @@ -5014,7 +5032,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - drop local.get $6 i32.const -2 i32.and @@ -5023,7 +5040,11 @@ end end i32.const 0 + local.set $5 end + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5040,7 +5061,7 @@ br $for-loop|1 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -5061,52 +5082,51 @@ i32.const 100 i32.lt_u if - block $__inlined_func$~lib/set/Set#find4 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $1 - local.tee $3 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $1 + local.tee $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 local.get $5 if - local.get $5 local.get $5 i32.load offset=4 local.tee $6 @@ -5123,7 +5143,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - drop local.get $6 i32.const -2 i32.and @@ -5132,7 +5151,11 @@ end end i32.const 0 + local.set $5 end + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5142,55 +5165,54 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 local.get $1 call $~lib/set/Set#add - block $__inlined_func$~lib/set/Set#find7 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $1 - local.tee $3 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $1 + local.tee $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 local.get $5 if - local.get $5 local.get $5 i32.load offset=4 local.tee $6 @@ -5207,7 +5229,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - drop local.get $6 i32.const -2 i32.and @@ -5216,7 +5237,11 @@ end end i32.const 0 + local.set $5 end + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5233,7 +5258,7 @@ br $for-loop|3 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -5246,8 +5271,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5256,17 +5280,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $7 i32.const 0 i32.store - local.get $10 + local.get $4 i32.load offset=8 - local.set $6 - local.get $10 + local.set $5 + local.get $4 i32.load offset=16 - local.tee $7 - local.set $1 - local.get $8 + local.tee $3 + local.set $9 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5275,28 +5299,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 16 i32.const 6 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $10 i32.store - local.get $9 + local.get $10 i32.const 0 i32.store - local.get $9 + local.get $10 i32.const 0 i32.store offset=4 - local.get $9 + local.get $10 i32.const 0 i32.store offset=8 - local.get $9 + local.get $10 i32.const 0 i32.store offset=12 - local.get $1 + local.get $9 i32.const 1073741820 i32.gt_u if @@ -5308,154 +5332,155 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $9 i32.const 8 - local.get $1 + local.get $9 i32.const 8 i32.gt_u select - local.tee $3 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new local.tee $11 i32.store offset=4 local.get $11 - local.get $3 + local.get $1 call $~lib/memory/memory.fill - local.get $9 + local.get $10 local.get $11 i32.store local.get $11 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 $9 - local.get $3 + local.get $10 + local.get $1 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 $8 - local.get $9 + local.get $7 + local.get $10 i32.store loop $for-loop|0 - local.get $4 - local.get $7 - i32.lt_s + local.get $3 + local.get $8 + i32.gt_s if - local.get $4 + local.get $8 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add - local.tee $1 + local.tee $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $9 - local.get $2 - local.get $1 - 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 $4 + local.get $8 i32.const 1 i32.add - local.set $4 + local.set $8 br $for-loop|0 end end - local.get $9 + local.get $10 local.get $2 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $9 + local.get $10 local.get $2 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 $6 + local.get $10 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 $9 + local.get $10 i32.load offset=12 local.get $0 i32.gt_s if - local.get $9 + local.get $10 local.get $0 call $~lib/array/Array#__get local.set $2 - block $__inlined_func$~lib/set/Set#find10 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -5469,8 +5494,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - drop - local.get $4 + local.get $5 i32.const -2 i32.and local.set $1 @@ -5478,7 +5502,9 @@ end end i32.const 0 + local.set $1 end + local.get $1 i32.const 0 i32.ne i32.eqz @@ -5491,7 +5517,7 @@ unreachable end local.get $3 - local.get $9 + local.get $10 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -5504,7 +5530,7 @@ end local.get $3 i32.load offset=20 - local.get $10 + local.get $4 i32.load offset=20 i32.ne if @@ -5524,52 +5550,51 @@ i32.const 50 i32.lt_u if - block $__inlined_func$~lib/set/Set#find13 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $0 + local.tee $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -5586,7 +5611,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - drop local.get $3 i32.const -2 i32.and @@ -5595,7 +5619,11 @@ end end i32.const 0 + local.set $2 end + local.get $2 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5605,55 +5633,54 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 local.get $0 call $~lib/set/Set#delete - block $__inlined_func$~lib/set/Set#find16 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $0 + local.tee $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -5670,7 +5697,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - drop local.get $3 i32.const -2 i32.and @@ -5679,7 +5705,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -5695,7 +5723,7 @@ br $for-loop|6 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -5716,52 +5744,51 @@ i32.const 50 i32.lt_u if - block $__inlined_func$~lib/set/Set#find19 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $0 + local.tee $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -5778,7 +5805,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - drop local.get $3 i32.const -2 i32.and @@ -5787,7 +5813,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -5796,55 +5824,54 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 local.get $0 call $~lib/set/Set#add - block $__inlined_func$~lib/set/Set#find22 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $0 + local.tee $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -5861,7 +5888,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - drop local.get $3 i32.const -2 i32.and @@ -5870,7 +5896,11 @@ end end i32.const 0 + local.set $2 end + local.get $2 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5880,55 +5910,54 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 local.get $0 - call $~lib/set/Set#delete - block $__inlined_func$~lib/set/Set#find25 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + call $~lib/set/Set#delete + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $0 + local.tee $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -5945,7 +5974,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - drop local.get $3 i32.const -2 i32.and @@ -5954,7 +5982,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -5970,7 +6000,7 @@ br $for-loop|8 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -5982,9 +6012,9 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 call $~lib/set/Set#clear - local.get $10 + local.get $4 i32.load offset=20 if i32.const 0 @@ -6095,23 +6125,23 @@ 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 @@ -6174,52 +6204,52 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + local.tee $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + 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 $2 + local.get $1 i32.load offset=4 local.tee $4 i32.const 1 @@ -6227,24 +6257,25 @@ if (result i32) i32.const 0 else - local.get $2 - i32.load16_u local.get $1 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop 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 $1 end + local.get $1 i32.eqz if local.get $0 @@ -6278,7 +6309,7 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $1 local.get $0 local.get $0 i32.load offset=16 @@ -6289,10 +6320,10 @@ local.get $4 i32.const 3 i32.shl - local.get $2 - i32.add - local.tee $2 local.get $1 + i32.add + local.tee $1 + local.get $2 i32.store16 local.get $0 local.get $0 @@ -6300,7 +6331,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + local.get $1 local.get $0 i32.load local.get $0 @@ -6314,7 +6345,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store end ) @@ -6381,51 +6412,50 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -6442,7 +6472,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -6451,8 +6480,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -6538,7 +6568,7 @@ local.tee $4 i32.store loop $for-loop|1 - local.get $2 + local.get $1 i32.extend16_s i32.const 100 i32.lt_s @@ -6547,7 +6577,8 @@ i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $1 + local.tee $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -6557,36 +6588,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $5 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $5 if - local.get $3 + local.get $5 i32.load offset=4 local.tee $6 i32.const 1 @@ -6594,9 +6625,9 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 i32.load16_u - local.get $2 + local.get $3 i32.const 65535 i32.and i32.eq @@ -6605,14 +6636,14 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $5 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $5 if i32.const 0 i32.const 1568 @@ -6622,13 +6653,14 @@ unreachable end local.get $4 - local.get $2 + local.get $1 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $1 + local.tee $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -6638,36 +6670,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $5 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $3 + local.get $5 if - local.get $3 + local.get $5 i32.load offset=4 local.tee $6 i32.const 1 @@ -6675,9 +6707,9 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 i32.load16_u - local.get $2 + local.get $3 i32.const 65535 i32.and i32.eq @@ -6686,14 +6718,16 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $5 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -6703,10 +6737,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 @@ -6723,9 +6757,9 @@ unreachable end i32.const 50 - local.set $2 + local.set $1 loop $for-loop|3 - local.get $2 + local.get $1 i32.extend16_s i32.const 100 i32.lt_s @@ -6734,7 +6768,8 @@ i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $1 + local.tee $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -6744,36 +6779,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $5 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $3 + local.get $5 if - local.get $3 + local.get $5 i32.load offset=4 local.tee $6 i32.const 1 @@ -6781,9 +6816,9 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 i32.load16_u - local.get $2 + local.get $3 i32.const 65535 i32.and i32.eq @@ -6792,14 +6827,16 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $5 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -6810,13 +6847,14 @@ unreachable end local.get $4 - local.get $2 + local.get $1 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $1 + local.tee $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -6826,36 +6864,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $5 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $3 + local.get $5 if - local.get $3 + local.get $5 i32.load offset=4 local.tee $6 i32.const 1 @@ -6863,9 +6901,9 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $5 i32.load16_u - local.get $2 + local.get $3 i32.const 65535 i32.and i32.eq @@ -6874,14 +6912,16 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $5 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $5 end - local.get $3 + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -6891,10 +6931,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 @@ -6911,8 +6951,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6921,17 +6960,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $7 i32.const 0 i32.store local.get $4 i32.load offset=8 - local.set $2 + local.set $5 local.get $4 i32.load offset=16 - local.tee $7 + local.tee $3 local.set $9 - local.get $6 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6940,10 +6979,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $1 i64.const 0 i64.store - local.get $8 + local.get $1 i32.const 16 i32.const 8 call $~lib/rt/itcms/__new @@ -6981,28 +7020,28 @@ select i32.const 1 i32.shl - local.tee $11 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $11 i32.store offset=4 - local.get $8 local.get $11 + local.get $1 call $~lib/memory/memory.fill local.get $10 - local.get $8 + local.get $11 i32.store - local.get $8 + local.get $11 if local.get $10 - local.get $8 + local.get $11 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $10 - local.get $8 + local.get $11 i32.store offset=4 local.get $10 - local.get $11 + local.get $1 i32.store offset=8 local.get $10 local.get $9 @@ -7011,70 +7050,77 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 local.get $10 i32.store loop $for-loop|0 - local.get $5 - local.get $7 - i32.lt_s + local.get $3 + local.get $8 + i32.gt_s if - local.get $5 + local.get $8 i32.const 3 i32.shl - local.get $2 + local.get $5 i32.add - local.tee $6 + local.tee $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $2 + local.tee $1 + i32.const 1 + i32.add + local.set $2 local.get $10 - local.get $0 - local.get $6 + local.get $1 + local.get $7 i32.load16_s call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $5 + local.get $8 i32.const 1 i32.add - local.set $5 + local.set $8 br $for-loop|0 end end local.get $10 - local.get $0 + local.get $2 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity local.get $10 - local.get $0 + local.get $2 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 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 loop $for-loop|4 local.get $10 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if local.get $10 - local.get $1 + local.get $0 call $~lib/array/Array#__get - local.tee $2 + local.set $2 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -7084,41 +7130,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.set $3 - local.get $4 - i32.load - local.get $4 - i32.load offset=4 - local.get $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 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 @@ -7126,7 +7167,7 @@ if (result i32) i32.const 0 else - local.get $3 + local.get $1 i32.load16_u local.get $2 i32.const 65535 @@ -7137,14 +7178,16 @@ 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.const 0 + i32.ne i32.eqz if i32.const 0 @@ -7154,19 +7197,19 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $3 local.get $10 - local.get $1 + local.get $0 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|4 end end - local.get $0 + local.get $3 i32.load offset=20 local.get $4 i32.load offset=20 @@ -7180,9 +7223,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 @@ -7191,7 +7234,8 @@ i32.load local.get $4 i32.load offset=4 - local.get $1 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7201,44 +7245,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 - local.tee $0 + 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 i32.const 65535 @@ -7246,17 +7290,19 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|014 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 if i32.const 0 @@ -7267,13 +7313,14 @@ 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.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7283,44 +7330,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 - local.tee $0 + 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 i32.const 65535 @@ -7328,17 +7375,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|017 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 @@ -7347,10 +7394,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 @@ -7367,9 +7414,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 @@ -7378,7 +7425,8 @@ i32.load local.get $4 i32.load offset=4 - local.get $1 + local.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7388,44 +7436,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 - local.tee $0 + 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 i32.const 65535 @@ -7433,17 +7481,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|020 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 @@ -7453,13 +7501,14 @@ 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 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7469,44 +7518,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 - local.tee $0 + 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 i32.const 65535 @@ -7514,17 +7563,19 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|023 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 if i32.const 0 @@ -7535,13 +7586,14 @@ 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.get $0 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7551,44 +7603,44 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=4 - local.tee $0 + 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 i32.const 65535 @@ -7596,17 +7648,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|026 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 @@ -7615,10 +7667,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 @@ -7748,23 +7800,23 @@ 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 @@ -7827,53 +7879,53 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + local.tee $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + 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 $2 + local.get $1 i32.load offset=4 local.tee $4 i32.const 1 @@ -7881,24 +7933,25 @@ if (result i32) i32.const 0 else - local.get $2 - i32.load16_u local.get $1 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop 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 $1 end + local.get $1 i32.eqz if local.get $0 @@ -7932,7 +7985,7 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $1 local.get $0 local.get $0 i32.load offset=16 @@ -7943,10 +7996,10 @@ local.get $4 i32.const 3 i32.shl - local.get $2 - i32.add - local.tee $2 local.get $1 + i32.add + local.tee $1 + local.get $2 i32.store16 local.get $0 local.get $0 @@ -7954,7 +8007,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + local.get $1 local.get $0 i32.load local.get $0 @@ -7968,7 +8021,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store end ) @@ -7988,60 +8041,59 @@ local.get $0 i32.load offset=4 local.get $1 - i32.const 1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 i32.shl i32.add - i32.load16_u - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -8058,7 +8110,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -8067,8 +8118,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -8151,7 +8203,7 @@ i32.store offset=8 local.get $3 call $~lib/set/Set#constructor - local.tee $10 + local.tee $4 i32.store loop $for-loop|1 local.get $1 @@ -8160,52 +8212,51 @@ i32.const 100 i32.lt_u if - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $1 - local.tee $3 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $1 + local.tee $3 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $5 if - local.get $5 local.get $5 i32.load offset=4 local.tee $6 @@ -8222,7 +8273,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $6 i32.const -2 i32.and @@ -8231,7 +8281,9 @@ end end i32.const 0 + local.set $5 end + local.get $5 if i32.const 0 i32.const 1568 @@ -8240,55 +8292,54 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 local.get $1 call $~lib/set/Set#add - block $__inlined_func$~lib/set/Set#find1 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $1 - local.tee $3 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $1 + local.tee $3 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 local.get $5 if - local.get $5 local.get $5 i32.load offset=4 local.tee $6 @@ -8305,7 +8356,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - drop local.get $6 i32.const -2 i32.and @@ -8314,7 +8364,11 @@ end end i32.const 0 + local.set $5 end + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -8331,7 +8385,7 @@ br $for-loop|1 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -8352,52 +8406,51 @@ i32.const 100 i32.lt_u if - block $__inlined_func$~lib/set/Set#find4 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $1 - local.tee $3 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $1 + local.tee $3 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 local.get $5 if - local.get $5 local.get $5 i32.load offset=4 local.tee $6 @@ -8414,7 +8467,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - drop local.get $6 i32.const -2 i32.and @@ -8423,7 +8475,11 @@ end end i32.const 0 + local.set $5 end + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -8433,55 +8489,54 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 local.get $1 call $~lib/set/Set#add - block $__inlined_func$~lib/set/Set#find7 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $1 - local.tee $3 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $1 + local.tee $3 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 local.get $5 if - local.get $5 local.get $5 i32.load offset=4 local.tee $6 @@ -8498,7 +8553,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - drop local.get $6 i32.const -2 i32.and @@ -8507,7 +8561,11 @@ end end i32.const 0 + local.set $5 end + local.get $5 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -8524,7 +8582,7 @@ br $for-loop|3 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -8537,8 +8595,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8547,17 +8604,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $7 i32.const 0 i32.store - local.get $10 + local.get $4 i32.load offset=8 - local.set $6 - local.get $10 + local.set $5 + local.get $4 i32.load offset=16 - local.tee $7 - local.set $1 - local.get $8 + local.tee $3 + local.set $9 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8566,28 +8623,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 16 i32.const 10 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $10 i32.store - local.get $9 + local.get $10 i32.const 0 i32.store - local.get $9 + local.get $10 i32.const 0 i32.store offset=4 - local.get $9 + local.get $10 i32.const 0 i32.store offset=8 - local.get $9 + local.get $10 i32.const 0 i32.store offset=12 - local.get $1 + local.get $9 i32.const 536870910 i32.gt_u if @@ -8599,156 +8656,157 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $9 i32.const 8 - local.get $1 + local.get $9 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $3 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new local.tee $11 i32.store offset=4 local.get $11 - local.get $3 + local.get $1 call $~lib/memory/memory.fill - local.get $9 + local.get $10 local.get $11 i32.store local.get $11 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 $9 - local.get $3 + local.get $10 + local.get $1 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 $8 - local.get $9 + local.get $7 + local.get $10 i32.store loop $for-loop|0 - local.get $4 - local.get $7 - i32.lt_s + local.get $3 + local.get $8 + i32.gt_s if - local.get $4 + local.get $8 i32.const 3 i32.shl - local.get $6 + local.get $5 i32.add - local.tee $1 + local.tee $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $9 - local.get $2 - local.get $1 - 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 $4 + local.get $8 i32.const 1 i32.add - local.set $4 + local.set $8 br $for-loop|0 end end - local.get $9 + local.get $10 local.get $2 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $9 + local.get $10 local.get $2 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 $6 + local.get $10 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 $9 + local.get $10 i32.load offset=12 local.get $0 i32.gt_s if - local.get $9 + local.get $10 local.get $0 call $~lib/array/Array#__get local.set $2 - block $__inlined_func$~lib/set/Set#find10 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) @@ -8762,8 +8820,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - drop - local.get $4 + local.get $5 i32.const -2 i32.and local.set $1 @@ -8771,7 +8828,9 @@ end end i32.const 0 + local.set $1 end + local.get $1 i32.const 0 i32.ne i32.eqz @@ -8784,7 +8843,7 @@ unreachable end local.get $3 - local.get $9 + local.get $10 local.get $0 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -8797,7 +8856,7 @@ end local.get $3 i32.load offset=20 - local.get $10 + local.get $4 i32.load offset=20 i32.ne if @@ -8817,52 +8876,51 @@ i32.const 50 i32.lt_u if - block $__inlined_func$~lib/set/Set#find13 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $0 + local.tee $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -8879,7 +8937,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - drop local.get $3 i32.const -2 i32.and @@ -8888,7 +8945,11 @@ end end i32.const 0 + local.set $2 end + local.get $2 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -8898,55 +8959,54 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 local.get $0 call $~lib/set/Set#delete - block $__inlined_func$~lib/set/Set#find16 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $0 + local.tee $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -8963,7 +9023,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - drop local.get $3 i32.const -2 i32.and @@ -8972,7 +9031,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -8988,7 +9049,7 @@ br $for-loop|6 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -9009,52 +9070,51 @@ i32.const 50 i32.lt_u if - block $__inlined_func$~lib/set/Set#find19 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $0 + local.tee $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -9071,73 +9131,73 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - drop local.get $3 i32.const -2 - i32.and - local.set $2 - br $while-continue|020 - end - end - i32.const 0 - end - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $10 - local.get $0 - call $~lib/set/Set#add - block $__inlined_func$~lib/set/Set#find22 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + i32.and + local.set $2 + br $while-continue|020 + end + end + i32.const 0 local.set $2 + end + local.get $2 + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $0 + call $~lib/set/Set#add + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $0 + local.tee $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -9154,7 +9214,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - drop local.get $3 i32.const -2 i32.and @@ -9163,7 +9222,11 @@ end end i32.const 0 + local.set $2 end + local.get $2 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -9173,55 +9236,54 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 local.get $0 call $~lib/set/Set#delete - block $__inlined_func$~lib/set/Set#find25 (result i32) - local.get $10 - i32.load - local.get $10 - i32.load offset=4 - local.get $0 - local.tee $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $4 + i32.load + local.get $4 + i32.load offset=4 + local.get $0 + local.tee $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -9238,7 +9300,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - drop local.get $3 i32.const -2 i32.and @@ -9247,7 +9308,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -9263,7 +9326,7 @@ br $for-loop|8 end end - local.get $10 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -9275,9 +9338,9 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $4 call $~lib/set/Set#clear - local.get $10 + local.get $4 i32.load offset=20 if i32.const 0 @@ -9387,23 +9450,23 @@ 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 @@ -9466,51 +9529,51 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + local.tee $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + 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 $2 + local.get $1 i32.load offset=4 local.tee $4 i32.const 1 @@ -9518,22 +9581,23 @@ if (result i32) i32.const 0 else - local.get $1 local.get $2 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop 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 $1 end + local.get $1 i32.eqz if local.get $0 @@ -9567,7 +9631,7 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $1 local.get $0 local.get $0 i32.load offset=16 @@ -9578,10 +9642,10 @@ local.get $4 i32.const 3 i32.shl - local.get $2 - i32.add - local.tee $2 local.get $1 + i32.add + local.tee $1 + local.get $2 i32.store local.get $0 local.get $0 @@ -9589,7 +9653,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + local.get $1 local.get $0 i32.load local.get $0 @@ -9603,7 +9667,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store end ) @@ -9666,54 +9730,53 @@ i32.shl i32.add i32.load - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -9728,7 +9791,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -9737,8 +9799,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -9802,7 +9865,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -9824,7 +9886,7 @@ local.tee $4 i32.store loop $for-loop|0 - local.get $2 + local.get $0 i32.const 100 i32.lt_s if @@ -9832,7 +9894,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -9878,7 +9940,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $0 local.get $3 i32.load i32.eq @@ -9904,13 +9966,14 @@ unreachable end local.get $4 - local.get $2 + local.get $0 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $0 + local.tee $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -9919,22 +9982,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -9943,12 +10006,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 local.tee $6 i32.const 1 @@ -9956,8 +10019,8 @@ if (result i32) i32.const 0 else - local.get $2 local.get $3 + local.get $0 i32.load i32.eq end @@ -9965,14 +10028,14 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -9982,10 +10045,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end @@ -10002,9 +10065,9 @@ unreachable end i32.const 50 - local.set $2 + local.set $0 loop $for-loop|1 - local.get $2 + local.get $0 i32.const 100 i32.lt_s if @@ -10012,7 +10075,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10058,7 +10121,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $0 local.get $3 i32.load i32.eq @@ -10085,13 +10148,14 @@ unreachable end local.get $4 - local.get $2 + local.get $0 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $0 + local.tee $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10100,22 +10164,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -10124,12 +10188,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 local.tee $6 i32.const 1 @@ -10137,8 +10201,8 @@ if (result i32) i32.const 0 else - local.get $2 local.get $3 + local.get $0 i32.load i32.eq end @@ -10146,14 +10210,14 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -10163,10 +10227,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|1 end end @@ -10183,8 +10247,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $7 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10193,17 +10256,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $8 i32.const 0 i32.store local.get $4 i32.load offset=8 - local.set $2 + local.set $3 local.get $4 i32.load offset=16 - local.tee $7 local.set $9 - local.get $6 + local.get $8 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10212,25 +10274,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $0 i64.const 0 i64.store - local.get $8 + local.get $0 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $6 i32.store - local.get $10 + local.get $6 i32.const 0 i32.store - local.get $10 + local.get $6 i32.const 0 i32.store offset=4 - local.get $10 + local.get $6 i32.const 0 i32.store offset=8 - local.get $10 + local.get $6 i32.const 0 i32.store offset=12 local.get $9 @@ -10253,97 +10315,99 @@ select i32.const 2 i32.shl - local.tee $11 + local.tee $10 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $0 i32.store offset=4 - local.get $8 - local.get $11 - call $~lib/memory/memory.fill + local.get $0 local.get $10 - local.get $8 + call $~lib/memory/memory.fill + local.get $6 + local.get $0 i32.store - local.get $8 + local.get $0 if - local.get $10 - local.get $8 + local.get $6 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 - local.get $8 + local.get $6 + local.get $0 i32.store offset=4 + local.get $6 local.get $10 - local.get $11 i32.store offset=8 - local.get $10 + local.get $6 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|01 + loop $for-loop|02 local.get $5 - local.get $7 + local.get $9 i32.lt_s if local.get $5 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add - local.tee $6 + local.tee $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $10 - local.get $0 + local.get $2 + local.tee $0 + i32.const 1 + i32.add + local.set $2 local.get $6 + 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 $5 i32.const 1 i32.add local.set $5 - br $for-loop|01 + br $for-loop|02 end end - local.get $10 - local.get $0 + local.get $6 + local.get $2 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 - local.get $0 + local.get $6 + local.get $2 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 $7 + local.get $6 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 $6 i32.load offset=12 local.get $1 i32.gt_s if - local.get $10 + local.get $6 local.get $1 call $~lib/array/Array#__get local.tee $2 @@ -10424,7 +10488,7 @@ unreachable end local.get $0 - local.get $10 + local.get $6 local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -10492,36 +10556,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $2 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/set/Set#find13 - local.get $0 + local.get $2 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.eqz if i32.const 0 @@ -10539,6 +10603,7 @@ local.get $4 i32.load offset=4 local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10547,22 +10612,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 @@ -10571,36 +10636,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|017 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -10609,7 +10674,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add local.set $1 @@ -10672,36 +10737,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $2 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/set/Set#find19 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|020 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -10750,36 +10815,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $2 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/set/Set#find22 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|023 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -10797,6 +10862,7 @@ local.get $4 i32.load offset=4 local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10805,22 +10871,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 @@ -10829,36 +10895,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|026 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -10867,7 +10933,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add local.set $1 @@ -10998,23 +11064,23 @@ 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 @@ -11077,51 +11143,51 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + local.tee $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + 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 $2 + local.get $1 i32.load offset=4 local.tee $4 i32.const 1 @@ -11129,22 +11195,23 @@ if (result i32) i32.const 0 else - local.get $1 local.get $2 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop 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 $1 end + local.get $1 i32.eqz if local.get $0 @@ -11178,7 +11245,7 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $1 local.get $0 local.get $0 i32.load offset=16 @@ -11189,10 +11256,10 @@ local.get $4 i32.const 3 i32.shl - local.get $2 - i32.add - local.tee $2 local.get $1 + i32.add + local.tee $1 + local.get $2 i32.store local.get $0 local.get $0 @@ -11200,7 +11267,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $2 + local.get $1 local.get $0 i32.load local.get $0 @@ -11214,7 +11281,7 @@ i32.load i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store end ) @@ -11242,50 +11309,49 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -11300,7 +11366,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -11309,8 +11374,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -11374,7 +11440,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -11396,7 +11461,7 @@ local.tee $4 i32.store loop $for-loop|0 - local.get $2 + local.get $0 i32.const 100 i32.lt_u if @@ -11404,7 +11469,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11450,7 +11515,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $0 local.get $3 i32.load i32.eq @@ -11476,13 +11541,14 @@ unreachable end local.get $4 - local.get $2 + local.get $0 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $0 + local.tee $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11491,22 +11557,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -11515,12 +11581,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 local.tee $6 i32.const 1 @@ -11528,8 +11594,8 @@ if (result i32) i32.const 0 else - local.get $2 local.get $3 + local.get $0 i32.load i32.eq end @@ -11537,14 +11603,14 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -11554,10 +11620,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end @@ -11574,9 +11640,9 @@ unreachable end i32.const 50 - local.set $2 + local.set $0 loop $for-loop|1 - local.get $2 + local.get $0 i32.const 100 i32.lt_u if @@ -11584,7 +11650,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11630,7 +11696,7 @@ if (result i32) i32.const 0 else - local.get $2 + local.get $0 local.get $3 i32.load i32.eq @@ -11657,13 +11723,14 @@ unreachable end local.get $4 - local.get $2 + local.get $0 call $~lib/set/Set#add local.get $4 i32.load local.get $4 i32.load offset=4 - local.get $2 + local.get $0 + local.tee $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11672,22 +11739,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -11696,12 +11763,12 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 local.tee $6 i32.const 1 @@ -11709,8 +11776,8 @@ if (result i32) i32.const 0 else - local.get $2 local.get $3 + local.get $0 i32.load i32.eq end @@ -11718,14 +11785,14 @@ local.get $6 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -11735,10 +11802,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|1 end end @@ -11755,8 +11822,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $7 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -11765,17 +11831,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $8 i32.const 0 i32.store local.get $4 i32.load offset=8 - local.set $2 + local.set $3 local.get $4 i32.load offset=16 - local.tee $7 local.set $9 - local.get $6 + local.get $8 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -11784,25 +11849,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $0 i64.const 0 i64.store - local.get $8 + local.get $0 i32.const 16 i32.const 14 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $6 i32.store - local.get $10 + local.get $6 i32.const 0 i32.store - local.get $10 + local.get $6 i32.const 0 i32.store offset=4 - local.get $10 + local.get $6 i32.const 0 i32.store offset=8 - local.get $10 + local.get $6 i32.const 0 i32.store offset=12 local.get $9 @@ -11825,97 +11890,99 @@ select i32.const 2 i32.shl - local.tee $11 + local.tee $10 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $0 i32.store offset=4 - local.get $8 - local.get $11 - call $~lib/memory/memory.fill + local.get $0 local.get $10 - local.get $8 + call $~lib/memory/memory.fill + local.get $6 + local.get $0 i32.store - local.get $8 + local.get $0 if - local.get $10 - local.get $8 + local.get $6 + local.get $0 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $10 - local.get $8 + local.get $6 + local.get $0 i32.store offset=4 + local.get $6 local.get $10 - local.get $11 i32.store offset=8 - local.get $10 + local.get $6 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|01 + loop $for-loop|02 local.get $5 - local.get $7 + local.get $9 i32.lt_s if local.get $5 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add - local.tee $6 + local.tee $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $10 - local.get $0 + local.get $2 + local.tee $0 + i32.const 1 + i32.add + local.set $2 local.get $6 + 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 $5 i32.const 1 i32.add local.set $5 - br $for-loop|01 + br $for-loop|02 end end - local.get $10 - local.get $0 + local.get $6 + local.get $2 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 - local.get $0 + local.get $6 + local.get $2 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 $7 + local.get $6 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 $6 i32.load offset=12 local.get $1 i32.gt_s if - local.get $10 + local.get $6 local.get $1 call $~lib/array/Array#__get local.tee $2 @@ -11996,7 +12063,7 @@ unreachable end local.get $0 - local.get $10 + local.get $6 local.get $1 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -12064,36 +12131,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $2 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/set/Set#find13 - local.get $0 + local.get $2 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.eqz if i32.const 0 @@ -12111,6 +12178,7 @@ local.get $4 i32.load offset=4 local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12119,22 +12187,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 @@ -12143,36 +12211,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|017 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -12181,7 +12249,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add local.set $1 @@ -12244,36 +12312,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $2 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/set/Set#find19 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|020 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -12322,36 +12390,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $2 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/set/Set#find22 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|023 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -12369,6 +12437,7 @@ local.get $4 i32.load offset=4 local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12377,22 +12446,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 @@ -12401,36 +12470,36 @@ i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $0 + local.get $2 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|026 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -12439,7 +12508,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add local.set $1 @@ -12485,61 +12554,60 @@ ) (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 local.tee $2 @@ -12554,7 +12622,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $2 i32.const -2 i32.and @@ -12563,7 +12630,9 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) @@ -12746,62 +12815,61 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $4 @@ -12816,7 +12884,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $4 i32.const -2 i32.and @@ -12825,7 +12892,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -12962,61 +13031,60 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -13031,7 +13099,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -13040,8 +13107,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -13132,7 +13200,7 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13140,7 +13208,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) (local $12 i32) @@ -13154,23 +13222,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 $11 + local.tee $2 i32.store loop $for-loop|0 - local.get $1 + local.get $9 i64.const 100 i64.lt_s if - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has if i32.const 0 @@ -13180,11 +13248,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#add - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has i32.eqz if @@ -13195,14 +13263,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $9 i64.const 1 i64.add - local.set $1 + local.set $9 br $for-loop|0 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -13215,14 +13283,14 @@ unreachable end i64.const 50 - local.set $1 + local.set $9 loop $for-loop|1 - local.get $1 + local.get $9 i64.const 100 i64.lt_s if - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has i32.eqz if @@ -13233,11 +13301,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#add - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has i32.eqz if @@ -13248,14 +13316,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $9 i64.const 1 i64.add - local.set $1 + local.set $9 br $for-loop|1 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -13268,8 +13336,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $5 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13278,17 +13345,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $6 i32.const 0 i32.store - local.get $11 + local.get $2 i32.load offset=8 - local.set $7 - local.get $11 + local.set $4 + local.get $2 i32.load offset=16 - local.tee $8 - local.set $2 - local.get $9 + local.tee $3 + local.set $10 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13297,28 +13364,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 i64.const 0 i64.store - local.get $5 + local.get $1 i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store - local.get $10 + local.get $11 i32.const 0 i32.store - local.get $10 + local.get $11 i32.const 0 i32.store offset=4 - local.get $10 + local.get $11 i32.const 0 i32.store offset=8 - local.get $10 + local.get $11 i32.const 0 i32.store offset=12 - local.get $2 + local.get $10 i32.const 134217727 i32.gt_u if @@ -13330,107 +13397,109 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $10 i32.const 8 - local.get $2 + local.get $10 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $5 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new local.tee $12 i32.store offset=4 local.get $12 - local.get $5 + local.get $1 call $~lib/memory/memory.fill - local.get $10 + local.get $11 local.get $12 i32.store local.get $12 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 $10 - local.get $5 + local.get $11 + local.get $1 i32.store offset=8 + local.get $11 local.get $10 - local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $10 + local.get $6 + local.get $11 i32.store - loop $for-loop|01 - local.get $4 - local.get $8 - i32.lt_s + loop $for-loop|02 + local.get $3 + local.get $7 + i32.gt_s if - local.get $4 + local.get $7 i32.const 4 i32.shl - local.get $7 + local.get $4 i32.add - local.tee $2 + local.tee $6 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $10 - local.get $0 - local.get $2 - i64.load - call $~lib/array/Array#__set 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 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 - br $for-loop|01 + local.set $7 + br $for-loop|02 end end - local.get $10 + local.get $11 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + 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 $10 + local.get $5 + local.get $11 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 $11 i32.load offset=12 - local.get $3 + local.get $8 i32.gt_s if + local.get $2 local.get $11 - local.get $10 - local.get $3 + local.get $8 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -13443,20 +13512,20 @@ unreachable end local.get $0 - local.get $10 - local.get $3 + local.get $11 + local.get $8 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|2 end end local.get $0 i32.load offset=20 - local.get $11 + local.get $2 i32.load offset=20 i32.ne if @@ -13468,14 +13537,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $9 loop $for-loop|3 - local.get $1 + local.get $9 i64.const 50 i64.lt_s if - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has i32.eqz if @@ -13486,11 +13555,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#delete - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has if i32.const 0 @@ -13500,14 +13569,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $9 i64.const 1 i64.add - local.set $1 + local.set $9 br $for-loop|3 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -13520,14 +13589,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $9 loop $for-loop|4 - local.get $1 + local.get $9 i64.const 50 i64.lt_s if - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has if i32.const 0 @@ -13537,11 +13606,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#add - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has i32.eqz if @@ -13552,11 +13621,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#delete - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has if i32.const 0 @@ -13566,14 +13635,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $9 i64.const 1 i64.add - local.set $1 + local.set $9 br $for-loop|4 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -13585,9 +13654,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $2 call $~lib/set/Set#clear - local.get $11 + local.get $2 i32.load offset=20 if i32.const 0 @@ -13612,61 +13681,60 @@ ) (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 local.tee $2 @@ -13681,7 +13749,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $2 i32.const -2 i32.and @@ -13690,7 +13757,9 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) @@ -13862,73 +13931,72 @@ i32.store offset=12 local.get $0 local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $4 @@ -13943,7 +14011,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $4 i32.const -2 i32.and @@ -13952,7 +14019,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -14050,61 +14119,60 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -14119,7 +14187,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -14128,8 +14195,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -14183,7 +14251,7 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14191,7 +14259,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) (local $12 i32) @@ -14205,23 +14273,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 $11 + local.tee $2 i32.store loop $for-loop|0 - local.get $1 + local.get $9 i64.const 100 i64.lt_u if - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has if i32.const 0 @@ -14231,11 +14299,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#add - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has i32.eqz if @@ -14246,14 +14314,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $9 i64.const 1 i64.add - local.set $1 + local.set $9 br $for-loop|0 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -14266,14 +14334,14 @@ unreachable end i64.const 50 - local.set $1 + local.set $9 loop $for-loop|1 - local.get $1 + local.get $9 i64.const 100 i64.lt_u if - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has i32.eqz if @@ -14284,11 +14352,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#add - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has i32.eqz if @@ -14299,14 +14367,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $9 i64.const 1 i64.add - local.set $1 + local.set $9 br $for-loop|1 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -14319,8 +14387,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $5 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14329,17 +14396,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $6 i32.const 0 i32.store - local.get $11 + local.get $2 i32.load offset=8 - local.set $7 - local.get $11 + local.set $4 + local.get $2 i32.load offset=16 - local.tee $8 - local.set $2 - local.get $9 + local.tee $3 + local.set $10 + local.get $6 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14348,28 +14415,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 i64.const 0 i64.store - local.get $5 + local.get $1 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $11 i32.store - local.get $10 + local.get $11 i32.const 0 i32.store - local.get $10 + local.get $11 i32.const 0 i32.store offset=4 - local.get $10 + local.get $11 i32.const 0 i32.store offset=8 - local.get $10 + local.get $11 i32.const 0 i32.store offset=12 - local.get $2 + local.get $10 i32.const 134217727 i32.gt_u if @@ -14381,107 +14448,109 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $10 i32.const 8 - local.get $2 + local.get $10 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $5 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new local.tee $12 i32.store offset=4 local.get $12 - local.get $5 + local.get $1 call $~lib/memory/memory.fill - local.get $10 + local.get $11 local.get $12 i32.store local.get $12 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 $10 - local.get $5 + local.get $11 + local.get $1 i32.store offset=8 + local.get $11 local.get $10 - local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 - local.get $10 + local.get $6 + local.get $11 i32.store - loop $for-loop|01 - local.get $4 - local.get $8 - i32.lt_s + loop $for-loop|02 + local.get $3 + local.get $7 + i32.gt_s if - local.get $4 + local.get $7 i32.const 4 i32.shl - local.get $7 + local.get $4 i32.add - local.tee $2 + local.tee $6 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $10 - local.get $0 - local.get $2 - i64.load - call $~lib/array/Array#__set 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 end - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 - br $for-loop|01 + local.set $7 + br $for-loop|02 end end - local.get $10 + local.get $11 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $10 + 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 $10 + local.get $5 + local.get $11 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 $11 i32.load offset=12 - local.get $3 + local.get $8 i32.gt_s if + local.get $2 local.get $11 - local.get $10 - local.get $3 + local.get $8 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -14494,20 +14563,20 @@ unreachable end local.get $0 - local.get $10 - local.get $3 + local.get $11 + local.get $8 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|2 end end local.get $0 i32.load offset=20 - local.get $11 + local.get $2 i32.load offset=20 i32.ne if @@ -14519,14 +14588,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $9 loop $for-loop|3 - local.get $1 + local.get $9 i64.const 50 i64.lt_u if - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has i32.eqz if @@ -14537,11 +14606,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#delete - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has if i32.const 0 @@ -14551,14 +14620,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $9 i64.const 1 i64.add - local.set $1 + local.set $9 br $for-loop|3 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -14571,14 +14640,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $9 loop $for-loop|4 - local.get $1 + local.get $9 i64.const 50 i64.lt_u if - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has if i32.const 0 @@ -14588,11 +14657,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#add - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has i32.eqz if @@ -14603,11 +14672,11 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#delete - local.get $11 - local.get $1 + local.get $2 + local.get $9 call $~lib/set/Set#has if i32.const 0 @@ -14617,14 +14686,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $9 i64.const 1 i64.add - local.set $1 + local.set $9 br $for-loop|4 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -14636,9 +14705,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $2 call $~lib/set/Set#clear - local.get $11 + local.get $2 i32.load offset=20 if i32.const 0 @@ -14750,23 +14819,23 @@ 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 @@ -14829,51 +14898,50 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $4 @@ -14888,7 +14956,6 @@ f32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $4 i32.const -2 i32.and @@ -14897,7 +14964,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -14995,50 +15064,49 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -15053,7 +15121,6 @@ f32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -15062,8 +15129,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -15128,7 +15196,6 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -15147,16 +15214,16 @@ i32.store offset=8 local.get $0 call $~lib/set/Set#constructor - local.tee $12 + local.tee $11 i32.store loop $for-loop|0 local.get $2 f32.const 100 f32.lt if - local.get $12 + local.get $11 i32.load - local.get $12 + local.get $11 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -15230,12 +15297,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 local.get $2 call $~lib/set/Set#add - local.get $12 + local.get $11 i32.load - local.get $12 + local.get $11 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -15317,7 +15384,7 @@ br $for-loop|0 end end - local.get $12 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -15336,9 +15403,9 @@ f32.const 100 f32.lt if - local.get $12 + local.get $11 i32.load - local.get $12 + local.get $11 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -15413,12 +15480,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 local.get $2 call $~lib/set/Set#add - local.get $12 + local.get $11 i32.load - local.get $12 + local.get $11 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -15500,7 +15567,7 @@ br $for-loop|1 end end - local.get $12 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -15513,8 +15580,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -15523,17 +15589,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 $12 + local.get $11 i32.load offset=8 local.set $8 - local.get $12 + local.get $11 i32.load offset=16 - local.tee $6 - local.set $3 - local.get $7 + local.set $7 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -15549,21 +15614,21 @@ i32.const 16 i32.const 20 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.store - local.get $4 + local.get $6 i32.const 0 i32.store offset=4 - local.get $4 + local.get $6 i32.const 0 i32.store offset=8 - local.get $4 + local.get $6 i32.const 0 i32.store offset=12 - local.get $3 + local.get $7 i32.const 268435455 i32.gt_u if @@ -15575,9 +15640,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.const 8 - local.get $3 + local.get $7 i32.const 8 i32.gt_u select @@ -15591,33 +15656,33 @@ local.get $5 local.get $0 call $~lib/memory/memory.fill - local.get $4 + local.get $6 local.get $5 i32.store local.get $5 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 $4 + local.get $6 local.get $0 i32.store offset=8 - local.get $4 - local.get $3 + local.get $6 + 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 $4 + local.get $3 + local.get $6 i32.store - loop $for-loop|01 - local.get $6 + loop $for-loop|02 + local.get $7 local.get $10 i32.gt_s if @@ -15626,21 +15691,21 @@ i32.shl local.get $8 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 $4 + local.get $6 i32.load offset=12 local.get $0 i32.le_u @@ -15656,7 +15721,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $6 local.get $0 i32.const 1 i32.add @@ -15664,11 +15729,11 @@ i32.const 2 i32.const 1 call $~lib/array/ensureCapacity - local.get $4 + local.get $6 local.get $3 i32.store offset=12 end - local.get $4 + local.get $6 i32.load offset=4 local.get $0 i32.const 2 @@ -15681,15 +15746,15 @@ i32.const 1 i32.add local.set $10 - br $for-loop|01 + br $for-loop|02 end end - local.get $4 + local.get $6 local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $4 + local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -15697,19 +15762,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $3 i32.store offset=8 loop $for-loop|2 - local.get $4 + local.get $6 i32.load offset=12 - local.get $11 + local.get $9 i32.gt_s if - local.get $4 - local.get $11 + local.get $6 + local.get $9 call $~lib/array/Array#__get local.tee $2 i32.reinterpret_f32 @@ -15736,9 +15802,9 @@ i32.const -1028477379 i32.mul local.set $0 - local.get $12 + local.get $11 i32.load - local.get $12 + local.get $11 i32.load offset=4 local.get $0 local.get $0 @@ -15750,12 +15816,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 $0 i32.const 1 @@ -15764,7 +15830,7 @@ i32.const 0 else local.get $2 - local.get $3 + local.get $1 f32.load f32.eq end @@ -15772,14 +15838,14 @@ local.get $0 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 @@ -15789,21 +15855,21 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $4 - local.get $11 + local.get $3 + local.get $6 + local.get $9 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $11 + local.get $9 i32.const 1 i32.add - local.set $11 + local.set $9 br $for-loop|2 end end - local.get $1 + local.get $3 i32.load offset=20 - local.get $12 + local.get $11 i32.load offset=20 i32.ne if @@ -15821,9 +15887,9 @@ f32.const 50 f32.lt if - local.get $12 + local.get $11 i32.load - local.get $12 + local.get $11 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -15898,12 +15964,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 local.get $2 call $~lib/set/Set#delete - local.get $12 + local.get $11 i32.load - local.get $12 + local.get $11 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -15984,7 +16050,7 @@ br $for-loop|3 end end - local.get $12 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -16003,9 +16069,9 @@ f32.const 50 f32.lt if - local.get $12 + local.get $11 i32.load - local.get $12 + local.get $11 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -16079,12 +16145,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 local.get $2 call $~lib/set/Set#add - local.get $12 + local.get $11 i32.load - local.get $12 + local.get $11 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -16159,12 +16225,12 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 local.get $2 call $~lib/set/Set#delete - local.get $12 + local.get $11 i32.load - local.get $12 + local.get $11 i32.load offset=4 local.get $2 i32.reinterpret_f32 @@ -16245,7 +16311,7 @@ br $for-loop|4 end end - local.get $12 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -16257,9 +16323,9 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 call $~lib/set/Set#clear - local.get $12 + local.get $11 i32.load offset=20 if i32.const 0 @@ -16285,63 +16351,62 @@ (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 local.tee $3 @@ -16356,7 +16421,6 @@ f64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -16365,7 +16429,9 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) @@ -16552,64 +16618,63 @@ (local $3 i64) (local $4 i32) (local $5 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i64.reinterpret_f64 - local.tee $3 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $5 @@ -16624,7 +16689,6 @@ f64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $5 i32.const -2 i32.and @@ -16633,7 +16697,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -16726,69 +16792,68 @@ i32.const 3 i32.shl i32.add - f64.load - ) - (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) - (local $2 i32) - (local $3 i64) - (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $3 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + f64.load + ) + (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) + (local $2 i32) + (local $3 i64) + (local $4 i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $3 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $4 @@ -16803,7 +16868,6 @@ f64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $4 i32.const -2 i32.and @@ -16812,8 +16876,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -16869,8 +16934,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) @@ -16889,23 +16954,23 @@ 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 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/set/Set#constructor - local.tee $12 + local.tee $3 i32.store loop $for-loop|0 - local.get $3 + local.get $4 f64.const 100 f64.lt if - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#has if i32.const 0 @@ -16915,11 +16980,11 @@ call $~lib/builtins/abort unreachable end - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#add - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#has i32.eqz if @@ -16930,14 +16995,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 f64.const 1 f64.add - local.set $3 + local.set $4 br $for-loop|0 end end - local.get $12 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -16950,14 +17015,14 @@ unreachable end f64.const 50 - local.set $3 + local.set $4 loop $for-loop|1 - local.get $3 + local.get $4 f64.const 100 f64.lt if - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#has i32.eqz if @@ -16968,11 +17033,11 @@ call $~lib/builtins/abort unreachable end - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#add - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#has i32.eqz if @@ -16983,14 +17048,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 f64.const 1 f64.add - local.set $3 + local.set $4 br $for-loop|1 end end - local.get $12 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -17003,8 +17068,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $7 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17013,17 +17077,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $8 i32.const 0 i32.store - local.get $12 + local.get $3 i32.load offset=8 - local.set $8 - local.get $12 + local.set $6 + local.get $3 i32.load offset=16 - local.tee $7 - local.set $2 - local.get $6 + local.tee $5 + local.set $11 + local.get $8 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17032,28 +17096,28 @@ 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 i32.const 16 i32.const 22 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 $2 + local.get $11 i32.const 134217727 i32.gt_u if @@ -17065,77 +17129,77 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $11 i32.const 8 - local.get $2 + local.get $11 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $0 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $12 i32.store offset=4 - local.get $4 - local.get $0 + local.get $12 + local.get $1 call $~lib/memory/memory.fill - local.get $5 - local.get $4 + local.get $2 + local.get $12 i32.store - local.get $4 + local.get $12 if - local.get $5 - local.get $4 + local.get $2 + local.get $12 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $5 - local.get $4 + local.get $2 + local.get $12 i32.store offset=4 - local.get $5 - local.get $0 + local.get $2 + local.get $1 i32.store offset=8 - local.get $5 local.get $2 + local.get $11 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 $5 + local.get $8 + local.get $2 i32.store - loop $for-loop|01 - local.get $7 - local.get $10 + loop $for-loop|02 + local.get $5 + local.get $9 i32.gt_s if - local.get $10 + local.get $9 i32.const 4 i32.shl - local.get $8 + local.get $6 i32.add - local.tee $2 + local.tee $1 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $1 - local.tee $0 + f64.load + local.set $4 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $1 + local.set $0 local.get $2 - f64.load - local.set $3 - local.get $5 i32.load offset=12 - local.get $0 + local.get $1 i32.le_u if - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -17146,61 +17210,62 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $0 + local.get $2 + local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $8 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $5 local.get $2 + local.get $8 i32.store offset=12 end - local.get $5 + local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add - local.get $3 + local.get $4 f64.store end - local.get $10 + local.get $9 i32.const 1 i32.add - local.set $10 - br $for-loop|01 + local.set $9 + br $for-loop|02 end end - local.get $5 - local.get $1 + local.get $2 + local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $5 - local.get $1 + 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 $5 + local.get $7 + local.get $2 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 $5 + local.get $2 i32.load offset=12 - local.get $11 + local.get $10 i32.gt_s if - local.get $12 - local.get $5 - local.get $11 + local.get $3 + local.get $2 + local.get $10 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -17213,20 +17278,20 @@ unreachable end local.get $0 - local.get $5 - local.get $11 + local.get $2 + local.get $10 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $11 + local.get $10 i32.const 1 i32.add - local.set $11 + local.set $10 br $for-loop|2 end end local.get $0 i32.load offset=20 - local.get $12 + local.get $3 i32.load offset=20 i32.ne if @@ -17238,14 +17303,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $4 loop $for-loop|3 - local.get $3 + local.get $4 f64.const 50 f64.lt if - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#has i32.eqz if @@ -17256,11 +17321,11 @@ call $~lib/builtins/abort unreachable end - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#delete - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#has if i32.const 0 @@ -17270,14 +17335,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 f64.const 1 f64.add - local.set $3 + local.set $4 br $for-loop|3 end end - local.get $12 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -17290,14 +17355,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $4 loop $for-loop|4 - local.get $3 + local.get $4 f64.const 50 f64.lt if - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#has if i32.const 0 @@ -17307,11 +17372,11 @@ call $~lib/builtins/abort unreachable end - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#add - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#has i32.eqz if @@ -17322,11 +17387,11 @@ call $~lib/builtins/abort unreachable end - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#delete - local.get $12 local.get $3 + local.get $4 call $~lib/set/Set#has if i32.const 0 @@ -17336,14 +17401,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 f64.const 1 f64.add - local.set $3 + local.set $4 br $for-loop|4 end end - local.get $12 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -17355,9 +17420,9 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $3 call $~lib/set/Set#clear - local.get $12 + local.get $3 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 c973a59401..55a6d361fc 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -240,19 +240,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -864,38 +862,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -2122,7 +2118,7 @@ local.get $0 i32.const 20 i32.sub - local.tee $6 + local.tee $5 i32.load i32.const -4 i32.and @@ -2131,17 +2127,16 @@ local.get $1 i32.ge_u if - local.get $6 + local.get $5 local.get $1 i32.store offset=16 local.get $0 return end - local.get $6 + local.get $5 i32.load offset=12 - local.set $3 + local.set $6 local.get $1 - local.tee $2 i32.const 1073741804 i32.ge_u if @@ -2158,12 +2153,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $1 + local.set $2 loop $do-loop|0 - local.get $1 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $1 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -2179,14 +2174,14 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $1 + local.get $2 i32.const 0 i32.gt_s br_if $do-loop|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -2203,11 +2198,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $7 - local.get $2 + local.set $3 + local.get $1 i32.const 16 i32.add - local.tee $4 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -2218,29 +2213,30 @@ call $~lib/builtins/abort unreachable end + local.get $3 i32.const 12 - local.get $4 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $4 + local.get $2 i32.const 12 i32.le_u select - local.tee $4 + local.tee $7 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $7 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -2249,16 +2245,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $4 + local.get $7 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $4 + local.get $7 i32.add - local.get $4 - local.get $4 + local.get $7 + local.get $7 i32.const 536870910 i32.lt_u select @@ -2269,16 +2265,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $5 - local.get $1 - local.get $5 + local.tee $4 + local.get $2 + local.get $4 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $4 memory.grow i32.const 0 i32.lt_s @@ -2286,18 +2282,18 @@ unreachable end end - local.get $7 - local.get $1 + local.get $3 + local.get $2 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $7 - local.get $4 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -2308,11 +2304,11 @@ unreachable end end - local.get $1 + local.get $2 i32.load i32.const -4 i32.and - local.get $4 + local.get $7 i32.lt_u if i32.const 0 @@ -2322,13 +2318,13 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $1 + local.get $3 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $2 i32.load - local.set $8 - local.get $4 + local.set $4 + local.get $7 i32.const 4 i32.add i32.const 15 @@ -2341,74 +2337,74 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $4 i32.const -4 i32.and - local.get $4 + local.get $7 i32.sub - local.tee $5 + local.tee $8 i32.const 16 i32.ge_u if - local.get $1 - local.get $8 + local.get $2 + local.get $4 i32.const 2 i32.and - local.get $4 + local.get $7 i32.or i32.store - local.get $4 - local.get $1 + local.get $7 + local.get $2 i32.const 4 i32.add i32.add local.tee $4 - local.get $5 + local.get $8 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $7 + local.get $3 local.get $4 call $~lib/rt/tlsf/insertBlock else - local.get $1 - local.get $8 + local.get $2 + local.get $4 i32.const -2 i32.and i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.get $1 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.store offset=12 - local.get $1 local.get $2 + local.get $1 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $3 i32.load offset=8 local.set $4 - local.get $1 - local.get $3 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $4 i32.store offset=8 local.get $4 @@ -2416,14 +2412,14 @@ i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $2 i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $1 + local.get $2 i32.load i32.const -4 i32.and @@ -2431,19 +2427,19 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 i32.const 20 i32.add local.tee $4 - local.get $2 + local.get $1 call $~lib/memory/memory.fill - local.get $2 - local.get $6 + local.get $1 + local.get $5 i32.load offset=16 - local.tee $1 + local.tee $2 local.get $1 local.get $2 - i32.gt_u + i32.lt_u select local.set $5 block $~lib/util/memory/memmove|inlined.0 @@ -2640,7 +2636,7 @@ (local $4 i32) local.get $0 i32.load offset=8 - local.tee $3 + local.tee $2 local.get $1 i32.shr_u i32.eqz @@ -2657,11 +2653,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 local.get $0 i32.load - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.const 1 i32.shl local.tee $4 @@ -2682,12 +2677,13 @@ local.tee $1 call $~lib/rt/itcms/__renew local.tee $4 + local.get $2 i32.add local.get $1 - local.get $3 + local.get $2 i32.sub call $~lib/memory/memory.fill - local.get $2 + local.get $3 local.get $4 i32.ne if diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index d28683e09a..c0f49c33a3 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -375,19 +375,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -1049,38 +1047,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1398,7 +1394,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1073741820 i32.gt_u @@ -1410,6 +1405,7 @@ call $~lib/builtins/abort unreachable end + local.get $0 i32.const 12 local.get $1 i32.const 19 @@ -1519,7 +1515,7 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.set $4 + local.set $2 local.get $3 i32.const 4 i32.add @@ -1533,17 +1529,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and local.get $3 i32.sub - local.tee $2 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $2 i32.const 2 i32.and local.get $3 @@ -1554,19 +1550,19 @@ i32.const 4 i32.add i32.add - local.tee $3 - local.get $2 + local.tee $2 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store @@ -1839,26 +1835,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -2751,6 +2747,22 @@ end end ) + (func $~lib/staticarray/StaticArray#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $2 + i32.store + local.get $2 + if + local.get $0 + local.get $2 + i32.const 1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=12 @@ -2776,6 +2788,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -2810,47 +2823,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -2861,17 +2874,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -2884,31 +2896,33 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf (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 3868 - i32.lt_s - if - i32.const 20272 - i32.const 20320 - 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 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + 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/staticarray/StaticArray<~lib/string/String>#indexOf local.get $2 local.get $0 i32.const 20 @@ -2927,6 +2941,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf end local.get $2 @@ -2966,7 +2981,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf end local.get $2 @@ -2981,302 +2995,86 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 end + local.get $2 i32.const 0 i32.ge_s ) - (func $~lib/staticarray/StaticArray<~lib/string/String>#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $start:std/staticarray~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 1 + i32.add + ) + (func $start:std/staticarray~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) + global.get $std/staticarray/maxVal + local.tee $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + global.set $std/staticarray/maxVal + ) + (func $start:std/staticarray~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.ge_s + ) + (func $start:std/staticarray~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + local.get $0 + local.get $1 + i32.add + ) + (func $start:std/staticarray~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 2 + i32.eq + ) + (func $start:std/staticarray~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 4 + i32.eq + ) + (func $start:std/staticarray~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.le_s + ) + (func $start:std/staticarray~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + local.get $0 + i32.const 3 + i32.gt_s + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - block $__inlined_func$~lib/util/string/joinStringArray (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3868 - i32.lt_s - if - i32.const 20272 - i32.const 20320 - 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 - i32.const 0 - i32.store offset=8 - local.get $5 - i32.const 1 - i32.sub - local.tee $6 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 2768 - br $__inlined_func$~lib/util/string/joinStringArray - end - local.get $6 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load - local.tee $0 - i32.store - local.get $1 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.const 2768 - local.get $0 - select - br $__inlined_func$~lib/util/string/joinStringArray - end - loop $for-loop|0 - local.get $4 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add - i32.load - local.tee $7 - i32.store offset=4 - local.get $7 - if - local.get $7 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.get $2 - i32.add - local.set $2 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $6 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - i32.mul - i32.add - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - i32.const 0 - local.set $4 - loop $for-loop|1 - local.get $4 - local.get $6 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add - i32.load - local.tee $7 - i32.store offset=4 - local.get $7 - if - local.get $3 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $7 - local.get $7 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.get $7 - i32.add - local.set $3 - end - local.get $2 - if - local.get $3 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $1 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $3 - i32.add - local.set $3 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 2 - i32.shl - local.get $0 - i32.add - i32.load - local.tee $0 - i32.store offset=4 - local.get $0 - if - local.get $3 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - end - ) - (func $start:std/staticarray~anonymous|0 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 1 - i32.add - ) - (func $start:std/staticarray~anonymous|1 (param $0 i32) (param $1 i32) (param $2 i32) - global.get $std/staticarray/maxVal - local.tee $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - global.set $std/staticarray/maxVal - ) - (func $start:std/staticarray~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 2 - i32.ge_s - ) - (func $start:std/staticarray~anonymous|3 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - local.get $0 - local.get $1 - i32.add - ) - (func $start:std/staticarray~anonymous|5 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 2 - i32.eq - ) - (func $start:std/staticarray~anonymous|6 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 4 - i32.eq - ) - (func $start:std/staticarray~anonymous|7 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 3 - i32.le_s - ) - (func $start:std/staticarray~anonymous|8 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $0 - i32.const 3 - i32.gt_s - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $3 - local.get $2 - local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $5 - local.get $3 - i32.sub - i32.const 1 - i32.and - i32.sub - local.get $5 - i32.const 1 - i32.and - local.get $3 - select - local.get $1 - i32.add - local.set $7 - loop $for-loop|0 - local.get $2 - local.get $7 - i32.ge_s + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $5 + i32.const 1 + i32.and + local.get $3 + select + local.get $1 + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s if local.get $7 i32.const 2 @@ -4099,16 +3897,26 @@ block $~lib/staticarray/StaticArray block $std/staticarray/Ref block $~lib/staticarray/StaticArray - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $~lib/staticarray/StaticArray $std/staticarray/Ref $~lib/staticarray/StaticArray $folding-inner1 $folding-inner1 $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/staticarray/StaticArray $std/staticarray/Ref $~lib/staticarray/StaticArray $folding-inner1 $folding-inner1 $~lib/staticarray/StaticArray<~lib/string/String> $~lib/array/Array<~lib/string/String> $~lib/staticarray/StaticArray $~lib/staticarray/StaticArray $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end return @@ -4191,13 +3999,21 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 f64) - (local $12 f32) + (local $11 i32) + (local $12 i32) (local $13 i32) (local $14 i32) (local $15 i32) - (local $16 i32) - (local $17 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) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub @@ -4208,19 +4024,19 @@ i32.lt_s 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 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i64.const 0 i64.store offset=16 - local.get $2 + local.get $3 i64.const 0 i64.store offset=24 - local.get $2 + local.get $3 i32.const 1056 i32.store i32.const 1056 @@ -4377,17 +4193,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.const 1312 i32.const 12 call $~lib/memory/memory.copy - local.get $2 + local.get $3 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -4402,9 +4218,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -4419,9 +4235,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -4436,9 +4252,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -4456,16 +4272,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -4481,17 +4297,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.const 1312 i32.const 12 call $~lib/memory/memory.copy - local.get $2 + local.get $3 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -4511,27 +4327,13 @@ local.tee $3 i32.store offset=4 local.get $3 + i32.const 0 call $std/staticarray/Ref#constructor - local.tee $2 - i32.store - local.get $2 - if - local.get $3 - local.get $2 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $~lib/staticarray/StaticArray#__uset local.get $3 + i32.const 1 call $std/staticarray/Ref#constructor - local.tee $2 - i32.store offset=4 - local.get $2 - if - local.get $3 - local.get $2 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $~lib/staticarray/StaticArray#__uset local.get $3 global.set $std/staticarray/arr4 i32.const 0 @@ -4539,8 +4341,7 @@ i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4549,25 +4350,25 @@ 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 $2 + local.get $3 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 12 call $~lib/memory/memory.fill global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -4584,17 +4385,17 @@ unreachable end loop $for-loop|0 - local.get $2 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $1 + local.get $2 i32.gt_s if + local.get $3 local.get $2 - local.get $1 call $~lib/staticarray/StaticArray#__get if i32.const 0 @@ -4604,10 +4405,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 @@ -4616,16 +4417,16 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 call $~lib/staticarray/StaticArray.fromArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $2 + local.get $3 i32.load offset=12 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4641,16 +4442,16 @@ unreachable end loop $for-loop|1 - local.get $2 + local.get $3 i32.load offset=12 - local.get $0 + local.get $6 i32.gt_s if - local.get $1 - local.get $0 - call $~lib/staticarray/StaticArray#__get local.get $2 - local.get $0 + local.get $6 + call $~lib/staticarray/StaticArray#__get + local.get $3 + local.get $6 call $~lib/array/Array#__get i32.ne if @@ -4661,10 +4462,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $0 + local.set $6 br $for-loop|1 end end @@ -4673,15 +4474,15 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 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 @@ -4699,29 +4500,29 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $5 i32.const 1856 i32.const 8 call $~lib/memory/memory.copy - local.get $2 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.const 1888 i32.const 4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=12 + local.get $5 local.get $2 - local.get $0 call $~lib/staticarray/StaticArray.concat - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4741,25 +4542,25 @@ i32.const 0 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.const 1920 i32.const 0 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=12 + local.get $5 local.get $2 - local.get $0 call $~lib/staticarray/StaticArray.concat - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $2 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -4778,26 +4579,26 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $7 i32.const 2128 i32.const 20 call $~lib/memory/memory.copy - local.get $4 + local.get $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.const 0 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $3 + local.tee $6 i32.store offset=4 - local.get $3 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $4 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -4813,33 +4614,33 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|2 - local.get $4 + local.get $7 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $1 + local.get $2 i32.gt_s if - local.get $4 - local.get $1 + local.get $7 + local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $5 i32.store - local.get $3 - local.get $1 + local.get $6 + local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=12 - local.get $2 - local.get $0 + local.get $5 + local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4850,21 +4651,21 @@ 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 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $5 i32.store offset=4 - local.get $2 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -4880,18 +4681,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $5 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $2 + local.get $3 i32.store - local.get $0 + local.get $2 i32.const 1984 i32.store offset=12 - local.get $1 + local.get $3 i32.const 1984 call $~lib/string/String.__eq i32.eqz @@ -4903,18 +4704,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $5 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $2 + local.get $3 i32.store - local.get $0 + local.get $2 i32.const 2016 i32.store offset=12 - local.get $1 + local.get $3 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4927,13 +4728,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 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 $4 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -4941,7 +4742,7 @@ i32.shr_u i32.const 1 i32.sub - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4957,19 +4758,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 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 $4 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -4985,13 +4786,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 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 @@ -5006,13 +4807,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 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 @@ -5028,18 +4829,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 $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $2 + local.get $3 i32.store - local.get $0 + local.get $2 i32.const 2080 i32.store offset=12 - local.get $1 + local.get $3 i32.const 2080 call $~lib/string/String.__eq i32.eqz @@ -5052,13 +4853,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 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 @@ -5073,13 +4874,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 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 @@ -5095,18 +4896,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 $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $2 + local.get $3 i32.store - local.get $0 + local.get $2 i32.const 2016 i32.store offset=12 - local.get $1 + local.get $3 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -5122,29 +4923,29 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $5 i32.const 2304 i32.const 20 call $~lib/memory/memory.copy - local.get $2 + local.get $5 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 $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=12 + local.get $5 local.get $2 - local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $0 + local.tee $2 i32.store offset=16 - local.get $0 - i32.load offset=12 local.get $2 + i32.load offset=12 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -5164,18 +4965,18 @@ i32.const 9 i32.const 2416 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=12 + local.get $5 local.get $2 - local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $0 + local.tee $2 i32.store offset=16 - local.get $0 - i32.load offset=12 local.get $2 + i32.load offset=12 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -5196,16 +4997,16 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.const 2448 i32.const 20 call $~lib/memory/memory.copy - local.get $0 + local.get $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 1984 i32.store offset=12 - local.get $0 + local.get $2 i32.const 1984 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5222,7 +5023,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2384 i32.store offset=12 - local.get $0 + local.get $2 i32.const 2384 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5237,7 +5038,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $0 + local.get $2 i32.const 2080 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5252,7 +5053,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $0 + local.get $2 i32.const 2080 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -5266,47 +5067,45 @@ call $~lib/builtins/abort unreachable end - i32.const 8 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $2 - i32.const 2496 - i32.const 8 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store block $__inlined_func$~lib/staticarray/StaticArray#includes (result i32) + i32.const 8 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $3 + i32.const 2496 + i32.const 8 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store i32.const 0 - local.set $0 - i32.const 0 - local.get $2 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 3 i32.shr_u - local.tee $1 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if i32.const 1 local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load - local.tee $11 + local.tee $17 f64.const nan:0x8000000000000 f64.eq - local.get $11 - local.get $11 + local.get $17 + local.get $17 f64.ne i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#includes @@ -5329,19 +5128,17 @@ call $~lib/builtins/abort unreachable end - i32.const 4 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $2 - i32.const 2528 - i32.const 4 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store block $__inlined_func$~lib/staticarray/StaticArray#includes (result i32) - i32.const 0 - local.set $0 + i32.const 4 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 2528 + i32.const 4 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store i32.const 0 local.get $2 i32.const 20 @@ -5349,36 +5146,36 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - loop $while-continue|025 + loop $while-continue|09 local.get $0 - local.get $1 - i32.lt_s + local.get $9 + i32.gt_s if i32.const 1 - local.get $0 + local.get $9 i32.const 2 i32.shl local.get $2 i32.add f32.load - local.tee $12 + local.tee $16 f32.const nan:0x400000 f32.eq - local.get $12 - local.get $12 + local.get $16 + local.get $16 f32.ne i32.or br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $0 + local.get $9 i32.const 1 i32.add - local.set $0 - br $while-continue|025 + local.set $9 + br $while-continue|09 end end i32.const 0 @@ -5402,10 +5199,8 @@ call $~lib/memory/memory.copy local.get $3 i32.store offset=16 - i32.const 0 - local.set $0 i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/staticarray/StaticArray#indexOf local.get $3 i32.const 20 @@ -5416,13 +5211,13 @@ local.tee $2 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf - loop $while-continue|027 - local.get $0 + loop $while-continue|012 + 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 $3 @@ -5431,17 +5226,17 @@ i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|012 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 @@ -5450,27 +5245,25 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $0 i32.const -1 - local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf28 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf13 local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $2 + local.tee $1 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf28 - loop $while-continue|030 - local.get $0 - local.get $2 - i32.lt_s + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf13 + loop $while-continue|028 + local.get $1 + local.get $4 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $4 + local.tee $0 i32.const 2 i32.shl local.get $3 @@ -5478,18 +5271,18 @@ i32.load i32.const 7 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf28 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf13 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|030 + local.set $4 + br $while-continue|028 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -5501,10 +5294,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf31 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf29 local.get $3 i32.const 20 i32.sub @@ -5517,14 +5310,14 @@ i32.const 1 local.get $2 select - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf31 + 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 $3 @@ -5532,18 +5325,18 @@ i32.load i32.const 9 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf31 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf29 + 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 @@ -5555,7 +5348,7 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf34 local.get $3 i32.const 20 @@ -5563,10 +5356,14 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 - i32.eqz + local.tee $2 + i32.const 0 + i32.lt_u + i32.const 1 + local.get $2 + select br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf34 - local.get $1 + local.get $2 i32.const 1 i32.sub local.tee $0 @@ -5575,13 +5372,13 @@ i32.const 0 i32.gt_s select - local.set $0 - loop $while-continue|036 - local.get $0 + local.set $1 + loop $while-continue|037 local.get $1 + local.get $2 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl local.get $3 @@ -5590,17 +5387,17 @@ 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 - br $while-continue|036 + 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 @@ -5612,8 +5409,8 @@ unreachable end i32.const -1 - local.set $0 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf37 + local.set $2 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf38 local.get $3 i32.const 20 i32.sub @@ -5626,7 +5423,7 @@ i32.const 1 local.get $1 select - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf37 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf38 local.get $1 i32.const 3 i32.sub @@ -5636,13 +5433,13 @@ i32.const 0 i32.gt_s select - local.set $0 - loop $while-continue|039 - local.get $0 + local.set $2 + loop $while-continue|041 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s if - local.get $0 + local.get $2 i32.const 2 i32.shl local.get $3 @@ -5650,18 +5447,18 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf37 - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf38 + local.get $2 i32.const 1 i32.add - local.set $0 - br $while-continue|039 + local.set $2 + br $while-continue|041 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 @@ -5674,58 +5471,60 @@ i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.const 2592 i32.const 16 call $~lib/memory/memory.copy - local.get $2 + local.get $3 i32.store offset=16 i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $3 + local.tee $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $3 + local.set $4 i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf - local.get $0 - local.get $3 + local.get $2 + local.get $4 i32.add - local.get $0 + local.get $2 i32.const 1 i32.sub - local.get $3 - local.get $0 - local.get $3 + local.get $4 + local.get $2 + local.get $4 i32.le_s select - local.get $3 + local.get $4 i32.const 0 i32.lt_s select - local.set $1 - loop $while-continue|012 - local.get $1 + local.set $2 + loop $while-continue|01 + local.get $2 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add i32.load i32.const 2 @@ -5734,8 +5533,8 @@ local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|012 + local.set $2 + br $while-continue|01 end end i32.const -1 @@ -5754,55 +5553,56 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $3 - local.set $0 + local.tee $4 + local.set $2 i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf17 - local.get $3 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 + local.get $4 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf17 - local.get $0 - local.get $3 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 + local.get $2 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub - local.get $0 - local.get $0 - local.get $3 + local.get $2 + local.get $2 + local.get $4 i32.ge_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select - local.set $1 - loop $while-continue|018 - local.get $1 + local.set $2 + loop $while-continue|07 + local.get $2 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add i32.load i32.const 7 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf17 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf6 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|018 + local.set $2 + br $while-continue|07 end end i32.const -1 @@ -5821,45 +5621,44 @@ end i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf19 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf8 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $2 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf19 - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf8 + local.get $2 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $2 i32.const 3 - i32.le_u + i32.le_s select - local.set $0 - loop $while-continue|041 - local.get $0 + local.set $1 + loop $while-continue|044 + 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 $2 + local.get $0 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf19 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf8 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|041 + local.set $1 + br $while-continue|044 end end i32.const -1 @@ -5877,51 +5676,51 @@ unreachable end i32.const -1 - local.set $0 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf42 - local.get $2 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 + local.get $0 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#lastIndexOf42 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 + local.get $2 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $2 i32.const 2 - i32.le_u + i32.le_s select - local.set $0 - loop $while-continue|044 - local.get $0 + local.set $1 + loop $while-continue|048 + 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 i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf42 - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|044 + local.set $1 + br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1216 @@ -5931,46 +5730,46 @@ unreachable end i32.const -1 - local.set $0 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 - local.get $2 + local.set $1 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 + local.get $0 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#lastIndexOf45 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 + local.get $2 i32.const 2 i32.sub - local.set $0 - loop $while-continue|047 - local.get $0 + local.set $1 + loop $while-continue|052 + 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 i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf45 - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf49 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|047 + local.set $1 + br $while-continue|052 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1216 @@ -5980,46 +5779,46 @@ unreachable end i32.const -1 - local.set $0 - block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf48 - local.get $2 + local.set $2 + block $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf48 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 + local.get $0 i32.const 1 i32.sub - local.set $0 - loop $while-continue|050 - local.get $0 + local.set $2 + loop $while-continue|056 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 + local.get $2 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf48 - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#lastIndexOf53 + local.get $2 i32.const 1 i32.sub - local.set $0 - br $while-continue|050 + local.set $2 + br $while-continue|056 end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const 3 i32.ne if @@ -6044,8 +5843,14 @@ i32.const 2800 i32.store offset=20 local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u i32.const 2800 - call $~lib/staticarray/StaticArray<~lib/string/String>#join + call $~lib/util/string/joinStringArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -6069,8 +5874,14 @@ i32.const 2768 i32.store offset=20 local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u i32.const 2768 - call $~lib/staticarray/StaticArray<~lib/string/String>#join + call $~lib/util/string/joinStringArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -6094,8 +5905,14 @@ i32.const 2928 i32.store offset=20 local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u i32.const 2928 - call $~lib/staticarray/StaticArray<~lib/string/String>#join + call $~lib/util/string/joinStringArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -6119,8 +5936,14 @@ i32.const 3008 i32.store offset=20 local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u i32.const 3008 - call $~lib/staticarray/StaticArray<~lib/string/String>#join + call $~lib/util/string/joinStringArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -6144,8 +5967,14 @@ i32.const 2800 i32.store offset=20 local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u i32.const 2800 - call $~lib/staticarray/StaticArray<~lib/string/String>#join + call $~lib/util/string/joinStringArray local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -6166,8 +5995,14 @@ i32.const 2800 i32.store local.get $2 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u i32.const 2800 - call $~lib/staticarray/StaticArray<~lib/string/String>#join + call $~lib/util/string/joinStringArray local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6208,10 +6043,10 @@ local.tee $1 local.get $1 i32.const 1 - i32.gt_u + i32.gt_s select local.set $0 - loop $for-loop|053 + loop $for-loop|060 local.get $0 local.get $1 i32.lt_s @@ -6227,7 +6062,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|053 + br $for-loop|060 end end local.get $2 @@ -6258,68 +6093,66 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.const 3136 i32.const 12 call $~lib/memory/memory.copy - local.get $5 + local.get $4 i32.store offset=16 - i32.const 0 - local.set $0 - local.get $5 + local.get $4 i32.const 20 i32.sub i32.load offset=16 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 - loop $while-continue|055 - local.get $0 - local.get $4 - i32.lt_u + local.set $2 + loop $while-continue|064 + local.get $3 + local.get $10 + i32.gt_u if - local.get $0 + local.get $10 i32.const 2 i32.shl - local.get $5 + 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 $10 i32.sub i32.const 2 i32.shl - local.get $5 + 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 $10 i32.const 1 i32.add - local.set $0 - br $while-continue|055 + local.set $10 + br $while-continue|064 end end end - local.get $5 + local.get $4 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -6332,7 +6165,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -6345,7 +6178,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -6362,35 +6195,69 @@ i32.const 20 i32.const 3 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.const 3168 i32.const 20 call $~lib/memory/memory.copy - local.get $3 + local.get $4 i32.store offset=16 - local.get $3 - i32.const 3 - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u + local.tee $3 + local.set $0 + i32.const 0 + local.get $3 + local.get $3 + i32.const 0 + i32.gt_s + select local.tee $2 - local.get $2 + i32.const 2 + i32.shl + local.get $4 + i32.add i32.const 3 - i32.gt_u + local.get $3 + local.get $3 + i32.const 3 + i32.gt_s select - local.tee $0 + local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add - local.get $2 local.get $0 + i32.const 0 + i32.lt_s + if (result i32) + local.get $0 + local.get $3 + i32.add + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + else + local.get $0 + local.get $3 + local.get $0 + local.get $3 + i32.lt_s + select + end + local.get $1 i32.sub local.tee $1 + local.get $3 local.get $2 + i32.sub local.tee $0 local.get $0 local.get $1 @@ -6399,7 +6266,7 @@ i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $4 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -6412,7 +6279,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -6425,7 +6292,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -6438,7 +6305,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 4 @@ -6451,7 +6318,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const 4 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -6468,18 +6335,16 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $4 i32.const 3216 i32.const 12 call $~lib/memory/memory.copy - local.get $7 + local.get $4 i32.store offset=16 global.get $~lib/memory/__stack_pointer local.tee $6 i32.const 3248 i32.store offset=12 - i32.const 0 - local.set $0 local.get $6 i32.const 4 i32.sub @@ -6489,11 +6354,11 @@ 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 $7 + local.get $0 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -6503,41 +6368,41 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.load offset=4 - local.set $3 - loop $for-loop|028 - local.get $0 + local.set $2 + loop $for-loop|042 local.get $5 - i32.lt_s + local.get $11 + i32.gt_s if - local.get $7 - local.get $0 + local.get $11 i32.const 2 i32.shl - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $2 - local.get $3 i32.add - local.get $1 local.get $0 - local.get $7 + local.get $11 + local.get $4 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $0 + local.get $11 i32.const 1 i32.add - local.set $0 - br $for-loop|028 + local.set $11 + br $for-loop|042 end end global.get $~lib/memory/__stack_pointer @@ -6545,9 +6410,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $6 - local.get $4 + local.get $3 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -6560,7 +6425,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -6573,7 +6438,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const 2 call $~lib/array/Array#__get i32.const 4 @@ -6589,38 +6454,36 @@ global.get $~lib/memory/__stack_pointer i32.const 3280 i32.store offset=12 - i32.const 0 - local.set $0 - local.get $7 + local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|060 - local.get $0 - local.get $2 - i32.lt_s + local.set $1 + loop $for-loop|070 + local.get $1 + local.get $8 + i32.gt_s if - local.get $0 + local.get $8 i32.const 2 i32.shl - local.get $7 + local.get $4 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $7 + local.get $8 + local.get $4 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 - br $for-loop|060 + local.set $8 + br $for-loop|070 end end global.get $std/staticarray/maxVal @@ -6635,10 +6498,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $17 + local.tee $11 i32.const 3312 i32.store offset=12 - local.get $17 + local.get $11 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6655,51 +6518,51 @@ i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $3 i32.store - local.get $7 + local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.set $13 - loop $for-loop|029 - local.get $9 - local.get $13 - i32.lt_s + local.set $10 + loop $for-loop|045 + local.get $10 + local.get $23 + i32.gt_s if - local.get $9 + local.get $23 i32.const 2 i32.shl - local.get $7 + local.get $4 i32.add i32.load - local.set $5 + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $9 - local.get $7 + local.get $23 + local.get $4 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $6 + local.get $3 i32.load offset=12 - local.tee $14 + local.tee $8 i32.const 1 i32.add - local.tee $15 + local.tee $7 + local.get $3 local.tee $2 - local.get $6 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 2 i32.shr_u i32.gt_u if - local.get $2 + local.get $7 i32.const 268435455 i32.gt_u if @@ -6711,7 +6574,7 @@ unreachable end block $__inlined_func$~lib/rt/itcms/__renew - local.get $4 + local.get $6 i32.const 1 i32.shl local.tee $0 @@ -6721,9 +6584,9 @@ i32.lt_u select local.tee $1 - local.get $2 + local.get $7 i32.const 8 - local.get $2 + local.get $7 i32.const 8 i32.gt_u select @@ -6734,15 +6597,14 @@ local.get $1 i32.lt_u select - local.tee $3 - local.tee $2 - local.get $6 + local.tee $13 + local.get $2 i32.load - local.tee $16 - local.tee $1 + local.tee $5 + local.tee $0 i32.const 20 i32.sub - local.tee $10 + local.tee $12 i32.load i32.const -4 i32.and @@ -6750,85 +6612,85 @@ i32.sub i32.le_u if - local.get $10 - local.get $2 + local.get $12 + local.get $13 i32.store offset=16 - local.get $1 - local.set $0 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $2 - local.get $10 + local.get $13 + local.get $12 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $0 - local.get $1 - local.get $2 - local.get $10 - i32.load offset=16 local.tee $1 - local.get $1 - local.get $2 + local.get $0 + local.get $13 + local.get $12 + i32.load offset=16 + local.tee $0 + local.get $0 + local.get $13 i32.gt_u select call $~lib/memory/memory.copy + local.get $1 + local.set $0 end local.get $0 - local.get $4 + local.get $6 i32.add - local.get $3 - local.get $4 + local.get $13 + local.get $6 i32.sub call $~lib/memory/memory.fill local.get $0 - local.get $16 + local.get $5 i32.ne if - local.get $6 + local.get $2 local.get $0 i32.store - local.get $6 + local.get $2 local.get $0 i32.store offset=4 local.get $0 if - local.get $6 + local.get $2 local.get $0 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end end - local.get $6 - local.get $3 + local.get $2 + local.get $13 i32.store offset=8 end - local.get $6 + local.get $2 i32.load offset=4 - local.get $14 + local.get $8 i32.const 2 i32.shl i32.add - local.get $5 + local.get $9 i32.store - local.get $6 - local.get $15 + local.get $2 + local.get $7 i32.store offset=12 end - local.get $9 + local.get $23 i32.const 1 i32.add - local.set $9 - br $for-loop|029 + local.set $23 + br $for-loop|045 end end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $17 - local.get $6 + local.get $11 + local.get $3 i32.store offset=24 - local.get $6 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -6840,7 +6702,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 0 call $~lib/array/Array#__get i32.const 2 @@ -6853,7 +6715,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const 1 call $~lib/array/Array#__get i32.const 3 @@ -6869,45 +6731,44 @@ global.get $~lib/memory/__stack_pointer i32.const 3344 i32.store offset=12 - i32.const 0 - local.set $0 - local.get $7 + local.get $4 + local.tee $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u local.set $2 - loop $for-loop|064 - local.get $0 + loop $for-loop|076 local.get $2 - i32.lt_s + local.get $22 + i32.gt_s if - local.get $0 + local.get $22 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add i32.load local.set $1 i32.const 4 global.set $~argumentsLength - local.get $8 + local.get $15 local.get $1 + local.get $22 local.get $0 - local.get $7 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $8 - local.get $0 + local.set $15 + local.get $22 i32.const 1 i32.add - local.set $0 - br $for-loop|064 + local.set $22 + br $for-loop|076 end end - local.get $8 + local.get $15 i32.const 6 i32.ne if @@ -6921,9 +6782,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3376 i32.store offset=12 - i32.const 0 - local.set $8 - local.get $7 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -6931,37 +6790,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|066 - local.get $0 + local.set $1 + loop $for-loop|080 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add i32.load - local.set $1 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $8 + local.get $14 + local.get $2 local.get $1 local.get $0 - local.get $7 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $8 - local.get $0 + local.set $14 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|066 + local.set $1 + br $for-loop|080 end end - local.get $8 + local.get $14 i32.const 6 i32.ne if @@ -6972,28 +6831,26 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store offset=12 block $__inlined_func$~lib/staticarray/StaticArray#some (result i32) - i32.const 0 - local.set $0 - local.get $7 + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=12 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u local.set $2 - loop $for-loop|068 - local.get $0 + loop $for-loop|084 local.get $2 - i32.lt_s + local.get $21 + i32.gt_s if - local.get $0 + local.get $21 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add i32.load local.set $1 @@ -7001,18 +6858,18 @@ global.set $~argumentsLength i32.const 1 local.get $1 + local.get $21 local.get $0 - 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 $0 + local.get $21 i32.const 1 i32.add - local.set $0 - br $for-loop|068 + local.set $21 + br $for-loop|084 end end i32.const 0 @@ -7026,28 +6883,26 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3440 - i32.store offset=12 - block $__inlined_func$~lib/staticarray/StaticArray#some69 (result i32) - i32.const 0 - local.set $0 - local.get $7 + block $__inlined_func$~lib/staticarray/StaticArray#some86 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=12 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u local.set $2 - loop $for-loop|071 - local.get $0 + loop $for-loop|089 local.get $2 - i32.lt_s + local.get $20 + i32.gt_s if - local.get $0 + local.get $20 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add i32.load local.set $1 @@ -7055,18 +6910,18 @@ global.set $~argumentsLength i32.const 1 local.get $1 + local.get $20 local.get $0 - local.get $7 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/staticarray/StaticArray#some69 + br_if $__inlined_func$~lib/staticarray/StaticArray#some86 drop - local.get $0 + local.get $20 i32.const 1 i32.add - local.set $0 - br $for-loop|071 + local.set $20 + br $for-loop|089 end end i32.const 0 @@ -7079,28 +6934,26 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3472 - i32.store offset=12 block $__inlined_func$~lib/staticarray/StaticArray#every (result i32) - i32.const 0 - local.set $0 - local.get $7 + global.get $~lib/memory/__stack_pointer + i32.const 3472 + i32.store offset=12 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u local.set $2 - loop $for-loop|073 - local.get $0 + loop $for-loop|093 local.get $2 - i32.lt_s + local.get $19 + i32.gt_s if - local.get $0 + local.get $19 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add i32.load local.set $1 @@ -7108,19 +6961,19 @@ global.set $~argumentsLength i32.const 0 local.get $1 + local.get $19 local.get $0 - 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 $0 + local.get $19 i32.const 1 i32.add - local.set $0 - br $for-loop|073 + local.set $19 + br $for-loop|093 end end i32.const 1 @@ -7134,28 +6987,26 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=12 - block $__inlined_func$~lib/staticarray/StaticArray#every74 (result i32) - i32.const 0 - local.set $0 - local.get $7 + block $__inlined_func$~lib/staticarray/StaticArray#every95 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=12 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u local.set $2 - loop $for-loop|076 - local.get $0 + loop $for-loop|098 local.get $2 - i32.lt_s + local.get $18 + i32.gt_s if - local.get $0 + local.get $18 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add i32.load local.set $1 @@ -7163,19 +7014,19 @@ global.set $~argumentsLength i32.const 0 local.get $1 + local.get $18 local.get $0 - 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#every74 + br_if $__inlined_func$~lib/staticarray/StaticArray#every95 drop - local.get $0 + local.get $18 i32.const 1 i32.add - local.set $0 - br $for-loop|076 + local.set $18 + br $for-loop|098 end end i32.const 1 @@ -7191,9 +7042,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=12 - i32.const 0 - local.set $0 - local.get $7 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -7201,36 +7050,36 @@ i32.shr_u local.set $2 block $__inlined_func$~lib/staticarray/StaticArray#findIndex - loop $for-loop|078 - local.get $0 + loop $for-loop|0102 local.get $2 - i32.lt_s + local.get $25 + i32.gt_s if - local.get $0 + local.get $25 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $25 local.get $0 - local.get $7 i32.const 3536 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex - local.get $0 + local.get $25 i32.const 1 i32.add - local.set $0 - br $for-loop|078 + local.set $25 + br $for-loop|0102 end end i32.const -1 - local.set $0 + local.set $25 end - local.get $0 + local.get $25 i32.const 1 i32.ne if @@ -7244,46 +7093,44 @@ global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=12 - i32.const 0 - local.set $0 - local.get $7 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u local.set $2 - block $__inlined_func$~lib/staticarray/StaticArray#findIndex79 - loop $for-loop|081 - local.get $0 + block $__inlined_func$~lib/staticarray/StaticArray#findIndex104 + loop $for-loop|0107 local.get $2 - i32.lt_s + local.get $24 + i32.gt_s if - local.get $0 + local.get $24 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $24 local.get $0 - local.get $7 i32.const 3568 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex79 - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#findIndex104 + local.get $24 i32.const 1 i32.add - local.set $0 - br $for-loop|081 + local.set $24 + br $for-loop|0107 end end i32.const -1 - local.set $0 + local.set $24 end - local.get $0 + local.get $24 i32.const -1 i32.ne if @@ -7297,7 +7144,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store offset=12 - local.get $7 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -7305,38 +7152,38 @@ i32.shr_u i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex - loop $for-loop|083 - local.get $0 + loop $for-loop|0111 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $1 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 $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|083 + local.set $1 + br $for-loop|0111 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -7350,7 +7197,7 @@ global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store offset=12 - local.get $7 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -7358,39 +7205,38 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex84 - loop $for-loop|086 - local.get $1 + local.set $2 + block $__inlined_func$~lib/staticarray/StaticArray#findLastIndex113 + loop $for-loop|0116 + local.get $2 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 i32.const 2 i32.shl - local.get $7 + local.get $0 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 - local.tee $0 - local.get $7 + local.get $2 + local.get $0 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex84 - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#findLastIndex113 + local.get $2 i32.const 1 i32.sub - local.set $1 - br $for-loop|086 + local.set $2 + br $for-loop|0116 end end i32.const -1 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 i32.const -1 i32.ne if @@ -7405,16 +7251,16 @@ i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.const 3664 i32.const 16 call $~lib/memory/memory.copy - local.get $1 + local.get $0 i32.store offset=28 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 @@ -7426,34 +7272,34 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of126 - block $0of127 - block $outOfRange28 + block $1of114 + block $0of115 + block $outOfRange16 global.get $~argumentsLength - br_table $0of127 $1of126 $outOfRange28 + br_table $0of115 $1of114 $outOfRange16 end unreachable end i32.const 3712 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 3712 i32.store end - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $0 + 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 $0 i32.const 0 call $~lib/staticarray/StaticArray#__get if @@ -7464,7 +7310,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 1 @@ -7477,7 +7323,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 2 @@ -7490,7 +7336,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 call $~lib/staticarray/StaticArray#__get i32.const 3 @@ -7509,12 +7355,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|089 + loop $while-continue|0121 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|089 + br $while-continue|0121 end end end @@ -7588,7 +7434,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7612,8 +7457,6 @@ i32.const 2 i32.shl local.tee $4 - local.set $6 - local.get $4 i32.const 0 call $~lib/rt/itcms/__new local.set $3 @@ -7621,7 +7464,7 @@ if local.get $3 local.get $2 - local.get $6 + local.get $4 call $~lib/memory/memory.copy end local.get $5 @@ -7726,7 +7569,7 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 local.get $1 i32.const 20 i32.sub @@ -7736,7 +7579,7 @@ i32.const 0 local.get $1 select - local.tee $2 + local.tee $3 i32.add local.tee $4 i32.const 268435455 @@ -7759,7 +7602,7 @@ i32.store local.get $4 local.get $0 - local.get $3 + local.get $2 i32.const 2 i32.shl local.tee $0 @@ -7768,7 +7611,7 @@ local.get $4 i32.add local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -7805,13 +7648,13 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $4 + local.set $3 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 i32.const 0 @@ -7821,9 +7664,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 @@ -7834,7 +7677,7 @@ i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $3 i32.add local.tee $2 i32.const 0 @@ -7844,9 +7687,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 @@ -7863,39 +7706,41 @@ local.tee $2 i32.const 8 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 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 - local.get $3 - i32.gt_u + i32.lt_u if + local.get $0 local.get $3 - local.get $4 i32.add local.get $0 - local.get $3 + local.get $1 i32.add i32.load - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 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 $3 + local.get $0 i32.const 4 i32.add - local.set $3 + local.set $0 br $while-continue|0 end end @@ -7903,7 +7748,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -7972,7 +7817,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7997,15 +7841,15 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.tee $5 + local.tee $4 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select - local.tee $6 + local.tee $5 i32.add - local.tee $4 + local.tee $3 i32.const 268435455 i32.gt_u if @@ -8017,83 +7861,85 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 9 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 $4 - local.get $5 + local.set $3 + local.get $4 i32.const 2 i32.shl - local.set $5 + local.set $4 loop $for-loop|0 - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.lt_u if + local.get $2 local.get $3 - local.get $4 i32.add local.get $0 - local.get $3 + local.get $2 i32.add i32.load - local.tee $8 + local.tee $7 i32.store - local.get $8 + local.get $7 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 $3 + local.get $2 i32.const 4 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end + local.get $3 local.get $4 - local.get $5 i32.add - local.set $0 + local.set $2 local.get $1 i32.load offset=4 local.set $1 - local.get $6 + local.get $5 i32.const 2 i32.shl local.set $3 + i32.const 0 + local.set $0 loop $for-loop|1 - local.get $2 + local.get $0 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 $7 + local.get $6 local.get $4 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $2 + local.get $0 i32.const 4 i32.add - local.set $2 + local.set $0 br $for-loop|1 end end @@ -8101,7 +7947,215 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 + ) + (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3868 + i32.lt_s + if + i32.const 20272 + i32.const 20320 + 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 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 2768 + return + end + local.get $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.load + local.tee $0 + i32.store + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 2768 + local.get $0 + select + return + end + loop $for-loop|0 + local.get $1 + local.get $5 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $7 + i32.store offset=4 + local.get $7 + if + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.get $3 + i32.add + local.set $3 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + local.get $6 + i32.mul + local.get $3 + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $7 + i32.store offset=4 + local.get $7 + if + local.get $4 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $7 + local.get $7 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $4 + local.get $7 + i32.add + local.set $4 + end + local.get $1 + if + local.get $4 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $2 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 + i32.add + local.set $4 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 2 + i32.shl + local.get $0 + i32.add + i32.load + local.tee $0 + i32.store offset=4 + local.get $0 + if + local.get $4 + i32.const 1 + i32.shl + local.get $3 + i32.add + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 ) (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 38a3381beb..f021a85f2e 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -1127,38 +1127,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1584,11 +1582,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1599,15 +1597,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1785,8 +1784,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -3070,6 +3069,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -3104,47 +3104,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -3155,17 +3155,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -3178,7 +3177,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) @@ -3291,25 +3292,25 @@ (local $3 i32) (local $4 i32) (local $5 i32) - block $__inlined_func$~lib/util/number/itoa64 (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 21092 - i32.lt_s - if - i32.const 37504 - i32.const 37552 - 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 21092 + i32.lt_s + if + i32.const 37504 + i32.const 37552 + 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/itoa64 local.get $0 i64.eqz if @@ -3318,6 +3319,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 19200 + local.set $1 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 @@ -3553,32 +3555,32 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $1 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/string/String#concat (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 21092 - i32.lt_s - if - i32.const 37504 - i32.const 37552 - 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 21092 + i32.lt_s + if + i32.const 37504 + i32.const 37552 + 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/string/String#concat local.get $0 i32.const 20 i32.sub @@ -3587,7 +3589,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $2 + local.tee $3 local.get $1 i32.const 20 i32.sub @@ -3596,9 +3598,9 @@ i32.shr_u i32.const 1 i32.shl - local.tee $3 - i32.add local.tee $4 + i32.add + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3606,30 +3608,31 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1056 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store - local.get $4 - local.get $0 local.get $2 + local.get $0 + local.get $3 call $~lib/memory/memory.copy local.get $2 - local.get $4 + local.get $3 i32.add local.get $1 - local.get $3 + 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 end + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -6096,7 +6099,7 @@ end i64.extend_i32_s local.set $0 - block $__inlined_func$~lib/string/String#codePointAt6 (result i32) + block $__inlined_func$~lib/string/String#codePointAt0 (result i32) i32.const -1 local.get $6 i32.const 20 @@ -6107,7 +6110,7 @@ local.tee $7 i32.const 1 i32.le_u - br_if $__inlined_func$~lib/string/String#codePointAt6 + br_if $__inlined_func$~lib/string/String#codePointAt0 drop local.get $7 i32.const 2 @@ -6122,7 +6125,7 @@ i32.or if local.get $7 - br $__inlined_func$~lib/string/String#codePointAt6 + br $__inlined_func$~lib/string/String#codePointAt0 end local.get $7 local.get $6 @@ -6132,7 +6135,7 @@ i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt6 + br_if $__inlined_func$~lib/string/String#codePointAt0 drop local.get $8 local.get $7 @@ -6154,7 +6157,7 @@ i64.add local.set $0 end - block $__inlined_func$~lib/string/String#codePointAt8 (result i32) + block $__inlined_func$~lib/string/String#codePointAt1 (result i32) i32.const -1 local.get $6 i32.const 20 @@ -6165,7 +6168,7 @@ local.tee $7 i32.const 2 i32.le_u - br_if $__inlined_func$~lib/string/String#codePointAt8 + br_if $__inlined_func$~lib/string/String#codePointAt1 drop local.get $7 i32.const 3 @@ -6180,7 +6183,7 @@ i32.or if local.get $7 - br $__inlined_func$~lib/string/String#codePointAt8 + br $__inlined_func$~lib/string/String#codePointAt1 end local.get $7 local.get $6 @@ -6190,7 +6193,7 @@ i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt8 + br_if $__inlined_func$~lib/string/String#codePointAt1 drop local.get $6 local.get $7 @@ -6214,7 +6217,7 @@ local.get $0 end local.set $2 - block $__inlined_func$~lib/string/String#codePointAt10 (result i32) + block $__inlined_func$~lib/string/String#codePointAt2 (result i32) i32.const -1 local.get $1 i32.const 20 @@ -6224,7 +6227,7 @@ i32.shr_u local.tee $6 i32.eqz - br_if $__inlined_func$~lib/string/String#codePointAt10 + br_if $__inlined_func$~lib/string/String#codePointAt2 drop local.get $6 i32.const 1 @@ -6239,7 +6242,7 @@ i32.or if local.get $6 - br $__inlined_func$~lib/string/String#codePointAt10 + br $__inlined_func$~lib/string/String#codePointAt2 end local.get $6 local.get $1 @@ -6249,7 +6252,7 @@ i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt10 + br_if $__inlined_func$~lib/string/String#codePointAt2 drop local.get $7 local.get $6 @@ -6261,7 +6264,7 @@ end i64.extend_i32_s local.set $0 - block $__inlined_func$~lib/string/String#codePointAt12 (result i32) + block $__inlined_func$~lib/string/String#codePointAt3 (result i32) i32.const -1 local.get $1 i32.const 20 @@ -6272,7 +6275,7 @@ local.tee $6 i32.const 1 i32.le_u - br_if $__inlined_func$~lib/string/String#codePointAt12 + br_if $__inlined_func$~lib/string/String#codePointAt3 drop local.get $6 i32.const 2 @@ -6287,7 +6290,7 @@ i32.or if local.get $6 - br $__inlined_func$~lib/string/String#codePointAt12 + br $__inlined_func$~lib/string/String#codePointAt3 end local.get $6 local.get $1 @@ -6297,7 +6300,7 @@ i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt12 + br_if $__inlined_func$~lib/string/String#codePointAt3 drop local.get $7 local.get $6 @@ -6319,7 +6322,7 @@ i64.add local.set $0 end - block $__inlined_func$~lib/string/String#codePointAt14 (result i32) + block $__inlined_func$~lib/string/String#codePointAt4 (result i32) i32.const -1 local.get $1 i32.const 20 @@ -6330,7 +6333,7 @@ local.tee $6 i32.const 2 i32.le_u - br_if $__inlined_func$~lib/string/String#codePointAt14 + br_if $__inlined_func$~lib/string/String#codePointAt4 drop local.get $6 i32.const 3 @@ -6345,7 +6348,7 @@ i32.or if local.get $6 - br $__inlined_func$~lib/string/String#codePointAt14 + br $__inlined_func$~lib/string/String#codePointAt4 end local.get $6 local.get $1 @@ -6355,7 +6358,7 @@ i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt14 + br_if $__inlined_func$~lib/string/String#codePointAt4 drop local.get $1 local.get $6 @@ -6645,7 +6648,7 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $9 i32.store loop $for-loop|0 local.get $3 @@ -6658,12 +6661,12 @@ local.get $0 i32.add i32.load16_u - local.tee $2 + local.tee $4 i32.const 7 i32.shr_u if block $for-continue|0 - local.get $2 + local.get $4 i32.const 55295 i32.sub i32.const 1025 @@ -6681,7 +6684,7 @@ local.get $0 i32.add i32.load16_u offset=2 - local.tee $4 + local.tee $2 i32.const 56319 i32.sub i32.const 1025 @@ -6691,10 +6694,10 @@ i32.const 1 i32.add local.set $3 - local.get $4 + local.get $2 i32.const 1023 i32.and - local.get $2 + local.get $4 local.tee $1 i32.const 1023 i32.and @@ -6703,53 +6706,53 @@ i32.or i32.const 65536 i32.add - local.tee $2 + local.tee $4 i32.const 131072 i32.ge_u if - local.get $6 + local.get $10 i32.const 1 i32.shl - local.get $7 + local.get $9 i32.add - local.get $4 + local.get $2 i32.const 16 i32.shl local.get $1 i32.or i32.store - local.get $6 + local.get $10 i32.const 1 i32.add - local.set $6 + local.set $10 br $for-continue|0 end end end - local.get $2 + local.get $4 i32.const 304 i32.eq if - local.get $6 + local.get $10 i32.const 1 i32.shl - local.get $7 + local.get $9 i32.add i32.const 50790505 i32.store - local.get $6 + local.get $10 i32.const 1 i32.add - local.set $6 + local.set $10 else - local.get $2 + local.get $4 i32.const 931 i32.eq if - local.get $6 + local.get $10 i32.const 1 i32.shl - local.get $7 + local.get $9 i32.add i32.const 962 i32.const 963 @@ -6760,10 +6763,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 @@ -6771,20 +6774,20 @@ i32.const 0 i32.lt_s select - local.set $9 + local.set $6 loop $while-continue|1 - local.get $2 - local.get $9 + local.get $4 + local.get $6 i32.gt_s if i32.const -1 - local.set $5 + local.set $11 block $~lib/util/string/codePointBefore|inlined.0 - local.get $2 + local.get $4 i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $2 + local.get $4 i32.const 1 i32.sub i32.const 1 @@ -6792,22 +6795,22 @@ local.get $0 i32.add i32.load16_u - local.tee $11 + local.tee $7 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 + local.get $7 i32.const 1023 i32.and - local.get $2 + local.get $4 i32.const 2 i32.sub i32.const 1 @@ -6815,7 +6818,7 @@ local.get $0 i32.add i32.load16_u - local.tee $10 + local.tee $5 i32.const 1023 i32.and i32.const 10 @@ -6823,8 +6826,8 @@ i32.add i32.const 65536 i32.add - local.set $5 - local.get $10 + local.set $11 + local.get $5 i32.const 64512 i32.and i32.const 55296 @@ -6832,20 +6835,20 @@ br_if $~lib/util/string/codePointBefore|inlined.0 end i32.const 65533 - local.get $11 - local.get $11 + local.get $7 + local.get $7 i32.const 63488 i32.and i32.const 55296 i32.eq select - local.set $5 + local.set $11 end - local.get $5 + local.get $11 i32.const 918000 i32.lt_u if (result i32) - local.get $5 + local.get $11 i32.const 8 i32.shr_u i32.const 7212 @@ -6855,14 +6858,14 @@ i32.shl i32.const 7212 i32.add - local.get $5 + local.get $11 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $5 + local.get $11 i32.const 7 i32.and i32.shr_u @@ -6873,11 +6876,12 @@ end i32.eqz if - local.get $5 + i32.const 0 + local.get $11 i32.const 127370 i32.lt_u if (result i32) - local.get $5 + local.get $11 i32.const 8 i32.shr_u i32.const 10220 @@ -6887,14 +6891,14 @@ i32.shl i32.const 10220 i32.add - local.get $5 + local.get $11 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $5 + local.get $11 i32.const 7 i32.and i32.shr_u @@ -6903,22 +6907,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 $11 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 @@ -6927,9 +6929,10 @@ i32.eqz br_if $~lib/util/string/isFinalSigma|inlined.0 drop + local.get $2 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 30 i32.add local.tee $1 @@ -6938,13 +6941,13 @@ local.get $8 i32.lt_s select - local.set $4 + local.set $5 loop $while-continue|2 - local.get $2 local.get $4 + local.get $5 i32.lt_s if - local.get $2 + local.get $4 i32.const 1 i32.shl local.get $0 @@ -6956,25 +6959,25 @@ i32.const 55296 i32.eq local.get $8 - local.get $2 + 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 $2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $5 + local.get $2 local.get $1 i32.const 10 i32.shl @@ -7054,9 +7057,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 @@ -7068,23 +7071,23 @@ select i32.store16 else - local.get $2 + local.get $4 i32.const 9398 i32.sub i32.const 25 i32.le_u if - local.get $6 + local.get $10 i32.const 1 i32.shl - local.get $7 + local.get $9 i32.add - local.get $2 + local.get $4 i32.const 26 i32.add i32.store16 else - local.get $2 + local.get $4 i32.const 0 call $~lib/util/casemap/casemap i32.const 2097151 @@ -7093,18 +7096,18 @@ i32.const 65536 i32.lt_u if - local.get $6 + local.get $10 i32.const 1 i32.shl - local.get $7 + local.get $9 i32.add local.get $1 i32.store16 else - local.get $6 + local.get $10 i32.const 1 i32.shl - local.get $7 + local.get $9 i32.add local.get $1 i32.const 65536 @@ -7123,22 +7126,22 @@ i32.shl i32.or i32.store - local.get $6 + local.get $10 i32.const 1 i32.add - local.set $6 + local.set $10 end end end end end else - local.get $6 + local.get $10 i32.const 1 i32.shl - local.get $7 + local.get $9 i32.add - local.get $2 + local.get $4 i32.const 7084 i32.add i32.load8_u @@ -7148,15 +7151,15 @@ i32.const 1 i32.add local.set $3 - local.get $6 + local.get $10 i32.const 1 i32.add - local.set $6 + local.set $10 br $for-loop|0 end end - local.get $7 - local.get $6 + local.get $9 + local.get $10 i32.const 1 i32.shl call $~lib/rt/itcms/__renew @@ -7248,19 +7251,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -7270,22 +7273,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 37476 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -7299,7 +7302,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -7311,7 +7314,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -7319,15 +7322,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -7335,7 +7338,7 @@ else i32.const 21056 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1280 @@ -7345,7 +7348,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 21060 @@ -7363,25 +7366,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index cf75434ac5..eaf627f4de 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -712,38 +712,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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 - 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 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 + 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) @@ -1169,11 +1167,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1184,15 +1182,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1370,8 +1369,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2454,6 +2453,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -2488,47 +2488,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -2539,17 +2539,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -2562,7 +2561,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) @@ -2703,1134 +2704,1136 @@ (func $~start (local $0 i32) (local $1 i32) - block $folding-inner0 - 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 22540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 1056 - i32.store - i32.const 1052 - i32.load - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 8 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 38924 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - 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 22540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 12 - i32.ne - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 1088 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 1 - i32.ne - if + i32.store + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 1088 + i32.store + local.get $0 + i32.const 1056 + i32.store + i32.const 1052 + i32.load + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size i32.const 16 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 216 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 17 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 55 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 220 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 + i32.shl + i32.const 38924 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/fromSpace + 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 22540 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 1056 + i32.store + local.get $0 + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + local.get $0 i32.const 20 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - if - i32.const 0 - i32.const 1088 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 22 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=7 - if - i32.const 0 - i32.const 1088 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 82 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 24 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=9 - i32.const 216 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 25 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=10 - i32.const 98 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 26 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=11 - i32.const 223 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF16DecodeUnsafe - 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 22540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 1056 - i32.store - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 55 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 11 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - 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 22540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 - i32.store - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 65 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 183 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 70 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=7 - i32.const 164 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 71 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 173 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=9 - i32.const 162 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 73 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - 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 22540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 - i32.store - i32.const 2 - global.set $~argumentsLength - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 11 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 80 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 81 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 + i32.sub + i32.load offset=16 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 216 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 55 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 220 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 20 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + if + i32.const 0 + i32.const 1088 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + if + i32.const 0 + i32.const 1088 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 144 - i32.ne - if + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 216 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=10 + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=11 + i32.const 223 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 i32.const 0 - i32.const 1088 - i32.const 83 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 183 - i32.ne - if + i32.store offset=8 + local.get $0 + i32.const 1056 + i32.store + local.get $0 + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF16DecodeUnsafe + 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 22540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 1088 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if + i32.store + local.get $0 + i32.const 1056 + i32.store + i32.const 1056 i32.const 0 - i32.const 1088 - i32.const 85 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - i32.const 105 - i32.ne - if + call $~lib/string/String.UTF8.byteLength + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 11 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + 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 22540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 1056 + i32.store + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 183 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + i32.const 164 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 + i32.const 173 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 162 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + 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 22540 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 1056 + i32.store + i32.const 2 + global.set $~argumentsLength + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 11 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 183 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 86 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 87 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + i32.const 164 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 88 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 + i32.const 173 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 89 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 162 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 90 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=10 + if + i32.const 0 + i32.const 1088 + i32.const 91 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 i32.const 0 - i32.const 1088 - i32.const 86 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 240 - i32.ne - if + i32.store offset=8 + local.get $0 + i32.const 1824 + i32.store offset=4 + i32.const 1824 i32.const 0 - i32.const 1088 - i32.const 87 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=7 - i32.const 164 - i32.ne - if i32.const 0 - i32.const 1088 - i32.const 88 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 173 - i32.ne - if + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 0 - i32.const 1088 - i32.const 89 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=9 - i32.const 162 - i32.ne - if + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1824 + i32.store offset=4 + local.get $0 + i32.const 1824 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1824 + i32.store offset=4 + i32.const 1824 i32.const 0 - i32.const 1088 - i32.const 90 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=10 - if + i32.const 1 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 0 - i32.const 1088 - i32.const 91 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1824 - i32.store offset=4 - i32.const 1824 - i32.const 0 - i32.const 0 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1824 - i32.store offset=4 - local.get $0 - i32.const 1824 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1856 + i32.store offset=4 + local.get $0 + i32.const 1856 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1888 + i32.store offset=4 + i32.const 1888 i32.const 0 - i32.const 1088 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=4 - local.get $0 - i32.const 1856 - call $~lib/string/String.__eq - i32.eqz - if i32.const 0 - i32.const 1088 - i32.const 100 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1888 - i32.store offset=4 - local.get $0 - i32.const 1888 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 0 - i32.const 1088 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $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 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1856 - i32.store offset=4 - local.get $0 - i32.const 1856 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1888 + i32.store offset=4 + local.get $0 + i32.const 1888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1888 + i32.store offset=4 + i32.const 1888 i32.const 0 - i32.const 1088 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22540 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1056 - i32.store - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 0 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if + i32.const 1 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 0 - i32.const 1088 - i32.const 111 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22540 - i32.lt_s - br_if $folding-inner0 - 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 - i64.const 0 - i64.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=24 - local.get $0 - i32.const 1056 - i32.store - i32.const 2 - global.set $~argumentsLength - local.get $0 - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.decodeUnsafe + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1856 + i32.store offset=4 + local.get $0 + i32.const 1856 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 i32.const 0 - i32.const 1088 - i32.const 117 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1920 - i32.store offset=12 - i32.const 1920 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 4 - i32.ne - if + i32.store offset=8 + local.get $0 + i32.const 1056 + i32.store + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 1056 i32.const 0 - i32.const 1088 - i32.const 119 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1920 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 4 - i32.ne - if + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 0 - i32.const 1088 - i32.const 121 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=20 - i32.const 1968 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 4 - i32.ne - if + call $~lib/string/String.UTF8.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 111 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + br_if $folding-inner0 + 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 + i64.const 0 + i64.store offset=16 + local.get $0 i32.const 0 - i32.const 1088 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1968 - call $~lib/string/String.__eq - i32.eqz - if + i32.store offset=24 + local.get $0 + i32.const 1056 + i32.store + i32.const 2 + global.set $~argumentsLength + local.get $0 + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1920 + i32.store offset=12 + i32.const 1920 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 119 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1920 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.store offset=20 + i32.const 1968 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1920 i32.const 0 - i32.const 1088 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1920 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=24 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1968 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=24 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF8DecodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 2032 + i32.store + i32.const 2032 + call $std/string-encoding/testLarge + global.get $~lib/memory/__stack_pointer + i32.const 15152 + i32.store + i32.const 15152 + call $std/string-encoding/testLarge + global.get $~lib/rt/itcms/state i32.const 0 - i32.const 1088 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF8DecodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 2032 - i32.store - i32.const 2032 - call $std/string-encoding/testLarge - global.get $~lib/memory/__stack_pointer - i32.const 15152 - i32.store - i32.const 15152 - call $std/string-encoding/testLarge - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0 + br $while-continue|1 end end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end - end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end i32.const 38944 i32.const 38992 @@ -4765,9 +4768,10 @@ local.get $0 local.get $1 i32.add - local.tee $5 + local.set $5 local.get $0 - i32.lt_u + local.get $5 + i32.gt_u if i32.const 0 i32.const 1776 @@ -4994,19 +4998,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -5016,22 +5020,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 38924 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -5045,7 +5049,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -5057,7 +5061,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -5065,15 +5069,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -5081,7 +5085,7 @@ else i32.const 22512 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1344 @@ -5091,7 +5095,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 22516 @@ -5109,25 +5113,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 0888611a85..de9d16b7bf 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1227,19 +1227,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -1851,38 +1849,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -2484,11 +2480,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -2499,19 +2495,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -2519,7 +2516,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -2530,16 +2527,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -2550,16 +2547,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -2567,7 +2564,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -2575,8 +2572,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -2593,7 +2590,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -2603,13 +2600,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -2622,40 +2619,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -2685,8 +2682,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -5929,23 +5926,20 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) local.get $0 - local.tee $2 i32.load offset=12 local.tee $3 i32.const 1 i32.add - local.tee $4 - local.tee $7 - local.get $2 + local.tee $2 + local.get $0 i32.load offset=8 - local.tee $5 + local.tee $4 i32.const 2 i32.shr_u i32.gt_u if - local.get $7 + local.get $2 i32.const 268435455 i32.gt_u if @@ -5956,61 +5950,61 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load - local.tee $6 - local.get $5 + local.tee $5 + local.get $4 i32.const 1 i32.shl - local.tee $8 + local.tee $6 i32.const 1073741820 - local.get $8 + local.get $6 i32.const 1073741820 i32.lt_u select - local.tee $8 - local.get $7 + local.tee $6 + local.get $2 i32.const 8 - local.get $7 + local.get $2 i32.const 8 i32.gt_u select i32.const 2 i32.shl local.tee $7 + local.get $6 local.get $7 - local.get $8 - i32.lt_u + i32.gt_u select - local.tee $7 + local.tee $6 call $~lib/rt/itcms/__renew - local.tee $8 - local.get $5 + local.tee $7 + local.get $4 i32.add - local.get $7 - local.get $5 + local.get $6 + local.get $4 i32.sub call $~lib/memory/memory.fill - local.get $6 - local.get $8 + local.get $5 + local.get $7 i32.ne if - local.get $2 - local.get $8 + local.get $0 + local.get $7 i32.store - local.get $2 - local.get $8 + local.get $0 + local.get $7 i32.store offset=4 - local.get $8 + local.get $7 if - local.get $2 - local.get $8 + local.get $0 + local.get $7 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end end - local.get $2 - local.get $7 + local.get $0 + local.get $6 i32.store offset=8 end local.get $0 @@ -6023,13 +6017,13 @@ i32.store local.get $1 if - local.get $2 + local.get $0 local.get $1 i32.const 1 call $byn-split-outlined-A$~lib/rt/itcms/__link end local.get $0 - local.get $4 + local.get $2 i32.store offset=12 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) @@ -6307,8 +6301,8 @@ ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result 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) @@ -6332,12 +6326,11 @@ i64.sub local.tee $12 i64.and - local.set $6 + local.set $7 local.get $1 local.get $0 i64.shr_u i32.wrap_i64 - local.tee $2 local.tee $5 i32.const 100000 i32.lt_u @@ -6384,9 +6377,9 @@ i32.add end end - local.set $8 + local.set $2 loop $while-continue|0 - local.get $8 + local.get $2 i32.const 0 i32.gt_s if @@ -6402,137 +6395,137 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $8 + local.get $2 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 end - local.get $2 + local.get $5 i32.const 1000000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 - local.set $5 + local.get $5 + local.set $6 i32.const 0 - local.set $2 + local.set $5 br $break|1 end i32.const 0 - local.set $5 + local.set $6 end local.get $4 - local.get $5 + local.get $6 i32.or if local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.const 1 i32.shl i32.const 22864 i32.add - local.get $5 + local.get $6 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 - local.get $6 - local.get $2 + local.set $2 + local.get $7 + local.get $5 i64.extend_i32_u local.get $10 i64.extend_i32_s @@ -6542,11 +6535,11 @@ local.get $3 i64.le_u if - local.get $8 + local.get $2 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 + local.get $2 i32.const 2 i32.shl i32.const 23792 @@ -6561,9 +6554,9 @@ i32.shl i32.const 22862 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|3 local.get $0 local.get $9 @@ -6581,11 +6574,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 @@ -6593,10 +6586,10 @@ i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $1 i64.add @@ -6604,8 +6597,8 @@ br $while-continue|3 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 return @@ -6618,7 +6611,7 @@ i64.const 10 i64.mul local.set $3 - local.get $6 + local.get $7 i64.const 10 i64.mul local.tee $0 @@ -6633,11 +6626,11 @@ i64.ne if local.get $4 - local.tee $2 + local.tee $5 i32.const 1 i32.add local.set $4 - local.get $2 + local.get $5 i32.const 1 i32.shl i32.const 22864 @@ -6650,26 +6643,26 @@ i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 + local.set $2 local.get $3 local.get $0 local.get $12 i64.and - local.tee $6 + local.tee $7 i64.le_u br_if $while-continue|4 end - local.get $8 + local.get $2 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 $8 + local.get $2 i32.sub i32.const 2 i32.shl @@ -6684,9 +6677,9 @@ i32.shl i32.const 22862 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|6 local.get $0 local.get $1 @@ -6704,22 +6697,22 @@ 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 i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $11 i64.add @@ -6727,8 +6720,8 @@ br $while-continue|6 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 ) @@ -7348,16 +7341,26 @@ block $folding-inner0 block $invalid block $~lib/array/Array<~lib/string/String> - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $~lib/array/Array<~lib/string/String> $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $~lib/array/Array<~lib/string/String> $invalid + end + return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end local.get $0 @@ -7388,14 +7391,7 @@ br $while-continue|0 end end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return + br $folding-inner0 end unreachable end @@ -7850,21 +7846,23 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - global.get $std/string/str - local.tee $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - if (result i32) + block $__inlined_func$~lib/string/String#charCodeAt (result i32) + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $0 + i32.store + i32.const -1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.eqz + br_if $__inlined_func$~lib/string/String#charCodeAt + drop local.get $0 i32.load16_u - else - i32.const -1 end i32.const 104 i32.ne @@ -7878,54 +7876,53 @@ end global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $3 i32.store - block $__inlined_func$~lib/string/String#codePointAt (result i32) - i32.const -1 - local.get $0 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/string/String#codePointAt + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u br_if $__inlined_func$~lib/string/String#codePointAt - drop local.get $3 + i32.load16_u offset=2 + local.tee $5 + local.set $0 + local.get $4 i32.const 2 i32.eq - local.get $0 - i32.load16_u offset=2 - local.tee $3 + local.get $5 i32.const 64512 i32.and i32.const 55296 i32.ne i32.or - if - local.get $3 - br $__inlined_func$~lib/string/String#codePointAt - end + br_if $__inlined_func$~lib/string/String#codePointAt local.get $3 - local.get $0 i32.load16_u offset=4 - local.tee $0 + local.tee $3 i32.const 64512 i32.and i32.const 56320 i32.ne br_if $__inlined_func$~lib/string/String#codePointAt - drop - local.get $0 local.get $3 + local.get $0 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub + local.set $0 end + local.get $0 i32.const 105 i32.ne if @@ -8403,15 +8400,15 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $3 - i32.store - local.get $0 - i32.const 2176 - i32.store offset=4 block $__inlined_func$~lib/string/String#startsWith (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/string/str + local.tee $3 + i32.store + local.get $0 + i32.const 2176 + i32.store offset=4 i32.const 0 local.get $3 i32.const 20 @@ -8420,27 +8417,26 @@ i32.const 1 i32.shr_u local.tee $0 + i32.const 0 + local.get $0 local.get $0 i32.const 0 i32.gt_s select - local.set $4 - i32.const 0 - local.get $0 - local.get $4 + local.tee $0 i32.const 2172 i32.load i32.const 1 i32.shr_u - local.tee $0 + local.tee $4 i32.add i32.lt_s br_if $__inlined_func$~lib/string/String#startsWith drop local.get $3 - local.get $4 - i32.const 2176 local.get $0 + i32.const 2176 + local.get $4 call $~lib/util/string/compareImpl i32.eqz end @@ -8453,44 +8449,47 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str - local.tee $3 - i32.store - local.get $0 - i32.const 2208 - i32.store offset=4 - i32.const 536870910 - local.get $3 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $0 - local.get $0 - i32.const 536870910 - i32.gt_s - select - i32.const 2204 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s - if (result i32) + block $__inlined_func$~lib/string/String#endsWith (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/string/str + local.tee $3 + i32.store + local.get $0 + i32.const 2208 + i32.store offset=4 + i32.const 0 + i32.const 536870910 + local.get $3 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - else + i32.shr_u + local.tee $0 + local.get $0 + i32.const 536870910 + i32.gt_s + select + i32.const 2204 + i32.load + i32.const 1 + i32.shr_u + local.tee $0 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + br_if $__inlined_func$~lib/string/String#endsWith + drop local.get $3 local.get $4 i32.const 2208 local.get $0 call $~lib/util/string/compareImpl + i32.eqz end + i32.eqz if i32.const 0 i32.const 1120 @@ -13703,28 +13702,28 @@ global.get $~lib/memory/__stack_pointer i32.const 65377 call $~lib/string/String.fromCodePoint - local.tee $3 + local.tee $0 i32.store offset=36 global.get $~lib/memory/__stack_pointer i32.const 55296 call $~lib/string/String.fromCodePoint - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store i32.const 56322 call $~lib/string/String.fromCodePoint - local.set $0 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store offset=4 + local.get $4 local.get $5 - local.get $0 call $~lib/string/String#concat - local.tee $0 + local.tee $3 i32.store offset=40 - local.get $3 local.get $0 + local.get $3 call $~lib/string/String.__gt i32.eqz if @@ -21639,15 +21638,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 0 i32.store - local.get $3 local.get $0 i32.const 2 i32.shl local.tee $4 - local.tee $5 i32.const 0 call $~lib/rt/itcms/__new local.set $3 @@ -21655,9 +21652,10 @@ if local.get $3 local.get $2 - local.get $5 + local.get $4 call $~lib/memory/memory.copy end + local.get $5 local.get $3 i32.store i32.const 16 @@ -21863,6 +21861,10 @@ 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 @@ -21871,12 +21873,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 @@ -21890,17 +21888,17 @@ local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $3 local.get $1 - local.get $4 + local.get $6 i32.sub - local.tee $6 - i32.lt_u + local.tee $5 + local.get $3 + i32.gt_u if local.get $3 - local.get $6 + local.get $5 i32.const 2 i32.sub local.get $3 @@ -21908,36 +21906,36 @@ local.tee $1 i32.mul local.set $7 - local.get $5 + local.get $4 local.get $2 local.get $3 local.get $1 call $~lib/memory/memory.repeat - local.get $5 + local.get $4 local.get $7 i32.add local.get $2 - local.get $6 + local.get $5 local.get $7 i32.sub call $~lib/memory/memory.copy else - local.get $5 + local.get $4 local.get $2 - 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#padEnd (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -21972,6 +21970,10 @@ i32.shl local.tee $3 i32.eqz + local.get $1 + i32.const 1 + i32.shl + local.tee $4 local.get $0 i32.const 20 i32.sub @@ -21980,12 +21982,8 @@ i32.shr_u i32.const 1 i32.shl - local.tee $4 - local.get $1 - i32.const 1 - i32.shl local.tee $5 - i32.gt_u + i32.lt_u i32.or if global.get $~lib/memory/__stack_pointer @@ -21996,53 +21994,53 @@ return end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store local.get $1 local.get $0 - local.get $4 - call $~lib/memory/memory.copy - local.get $3 local.get $5 + call $~lib/memory/memory.copy local.get $4 + local.get $5 i32.sub - local.tee $5 - i32.lt_u + local.tee $4 + local.get $3 + i32.gt_u if local.get $3 - local.get $5 + local.get $4 i32.const 2 i32.sub local.get $3 i32.div_u - local.tee $0 + local.tee $6 i32.mul - local.set $6 + local.set $0 local.get $1 - local.get $4 + local.get $5 i32.add - local.tee $4 + local.tee $5 local.get $2 local.get $3 - local.get $0 - call $~lib/memory/memory.repeat - local.get $4 local.get $6 + call $~lib/memory/memory.repeat + local.get $0 + local.get $5 i32.add local.get $2 - local.get $5 - local.get $6 + local.get $4 + local.get $0 i32.sub call $~lib/memory/memory.copy else local.get $1 - local.get $4 + local.get $5 i32.add local.get $2 - local.get $5 + local.get $4 call $~lib/memory/memory.copy end global.get $~lib/memory/__stack_pointer @@ -22236,7 +22234,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $3 + local.tee $2 local.set $1 loop $while-continue|0 local.get $1 @@ -22248,16 +22246,16 @@ i32.const 2 i32.sub i32.load16_u - local.tee $2 + local.tee $3 i32.const 5760 i32.lt_u if - local.get $2 + local.get $3 i32.const 128 i32.or i32.const 160 i32.eq - local.get $2 + local.get $3 i32.const 9 i32.sub i32.const 4 @@ -22266,7 +22264,7 @@ br $__inlined_func$~lib/util/string/isSpace end i32.const 1 - local.get $2 + local.get $3 i32.const -8192 i32.add i32.const 10 @@ -22275,31 +22273,31 @@ drop block $break|0 block $case6|0 - local.get $2 + local.get $3 i32.const 5760 i32.eq br_if $case6|0 - local.get $2 + local.get $3 i32.const 8232 i32.eq br_if $case6|0 - local.get $2 + local.get $3 i32.const 8233 i32.eq br_if $case6|0 - local.get $2 + local.get $3 i32.const 8239 i32.eq br_if $case6|0 - local.get $2 + local.get $3 i32.const 8287 i32.eq br_if $case6|0 - local.get $2 + local.get $3 i32.const 12288 i32.eq br_if $case6|0 - local.get $2 + local.get $3 i32.const 65279 i32.eq br_if $case6|0 @@ -22332,7 +22330,7 @@ return end local.get $1 - local.get $3 + local.get $2 i32.eq if global.get $~lib/memory/__stack_pointer @@ -22795,21 +22793,21 @@ 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 i32.const 1 i32.shr_u - local.tee $3 - local.get $0 + local.tee $4 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 - i32.ge_u + local.tee $3 + i32.le_u if local.get $3 local.get $4 @@ -22919,7 +22917,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) - block $folding-inner0 + block $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -22938,331 +22936,324 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $8 - i32.le_u - if - local.get $3 - local.get $8 - 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-inner0 - end - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - local.get $8 - i32.eqz - if - local.get $4 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $3 - i32.const 1 - i32.add - i32.mul - local.get $3 - i32.add + block $folding-inner1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - i32.shl + i32.shr_u + local.tee $5 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - local.get $6 + 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 - local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $4 - local.set $1 - loop $for-loop|0 + i32.shr_u + local.set $3 + local.get $7 + i32.eqz + if + local.get $3 + i32.eqz + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer local.get $3 local.get $5 - i32.gt_u - if - local.get $1 - i32.const 1 - i32.shl - local.get $6 - i32.add + 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 - 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 $6 - i32.add - local.get $2 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + 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 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 $4 - local.get $8 - i32.eq - if - global.get $~lib/memory/__stack_pointer local.get $3 - i32.const 1 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store + 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 + 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.get $0 - local.get $3 - call $~lib/memory/memory.copy - loop $while-continue|1 + local.set $4 + loop $while-continue|2 local.get $0 local.get $1 - local.get $10 + local.get $9 call $~lib/string/String#indexOf - local.tee $3 + 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 + 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 $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 i32.const 1 i32.shl - local.get $5 + 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 $4 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $3 local.get $8 i32.add - local.set $10 - br $while-continue|1 + local.set $8 + local.get $6 + local.get $7 + i32.add + local.set $9 + br $while-continue|2 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 $3 - local.set $5 - loop $while-continue|2 - local.get $0 - local.get $1 local.get $10 - call $~lib/string/String#indexOf - local.tee $7 - i32.const -1 - i32.xor if - local.get $11 - if (result i32) - local.get $11 - 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 $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=4 - end - local.get $5 local.get $4 + local.get $5 local.get $9 - local.get $7 - local.get $10 i32.sub - local.tee $6 - i32.add + local.tee $1 + local.get $8 i32.add i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $5 + local.get $10 + local.get $4 i32.const 1 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $11 + 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 $8 + i32.add + local.tee $0 + local.get $4 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $10 + local.get $0 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $10 i32.store offset=4 end - local.get $9 - i32.const 1 - i32.shl - local.get $11 - i32.add - local.get $10 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $6 - local.get $9 - i32.add - local.tee $6 - i32.const 1 - i32.shl - local.get $11 - i32.add - local.get $2 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $4 - local.get $6 - i32.add - local.set $9 - local.get $7 - local.get $8 - i32.add - local.set $10 - br $while-continue|2 - end - end - local.get $11 - if - local.get $5 - local.get $9 - local.get $3 - local.get $10 - i32.sub - local.tee $1 - i32.add - i32.lt_u - if global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $5 - i32.const 1 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $11 - i32.store offset=4 - end - local.get $1 - if - local.get $9 - i32.const 1 - i32.shl - local.get $11 + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer local.get $10 - 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 $5 - local.get $1 - local.get $9 - i32.add - local.tee $0 - i32.gt_u - if - global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $0 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $11 - i32.store offset=4 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return + br $folding-inner2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $4 return end global.get $~lib/memory/__stack_pointer @@ -23519,9 +23510,10 @@ i32.gt_s select local.tee $2 - local.get $2 + local.tee $4 local.get $3 - i32.gt_s + local.get $4 + i32.lt_s select i32.const 1 i32.shl @@ -23639,12 +23631,12 @@ local.get $0 ) (func $~lib/util/number/itoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (local $2 i64) (local $3 i64) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 i64) (local $6 i64) - (local $7 i64) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23695,72 +23687,72 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $5 + local.tee $4 select - local.set $2 + local.set $7 local.get $1 i32.const 10 i32.eq if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $7 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $7 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $7 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $7 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $7 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $7 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $7 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $7 i32.const 100000000 i32.ge_u i32.add end end - local.get $5 + local.get $4 i32.add - 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 $2 local.get $0 + local.get $7 + local.get $1 call $~lib/util/number/utoa32_dec_lut else local.get $1 @@ -23768,9 +23760,9 @@ i32.eq if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 31 - local.get $2 + local.get $7 i32.clz i32.sub i32.const 2 @@ -23778,30 +23770,30 @@ i32.const 1 i32.add i32.add - 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 $2 + local.get $7 i64.extend_i32_u - local.set $3 + local.set $2 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 $1 + local.get $0 i32.add - local.get $3 + local.get $2 i32.wrap_i64 i32.const 255 i32.and @@ -23811,19 +23803,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 $0 + local.get $1 i32.const 1 i32.and if - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.wrap_i64 i32.const 6 i32.shl @@ -23835,23 +23827,22 @@ else global.get $~lib/memory/__stack_pointer block $__inlined_func$~lib/util/number/ulog_base (result i32) - local.get $2 + local.get $7 i64.extend_i32_u local.tee $6 - local.set $3 + local.set $2 local.get $1 - local.tee $2 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $3 + local.get $2 i64.clz i32.wrap_i64 i32.sub i32.const 31 - local.get $2 + local.get $1 i32.clz i32.sub i32.div_u @@ -23859,25 +23850,25 @@ i32.add br $__inlined_func$~lib/util/number/ulog_base end - local.get $2 + local.get $1 i64.extend_i32_s - local.tee $7 - local.set $4 + local.tee $5 + local.set $3 i32.const 1 local.set $0 loop $while-continue|00 + local.get $2 local.get $3 - local.get $4 i64.ge_u if + local.get $2 local.get $3 - local.get $4 i64.div_u - local.set $3 - local.get $4 - local.get $4 + local.set $2 + local.get $3 + local.get $3 i64.mul - local.set $4 + local.set $3 local.get $0 i32.const 1 i32.shl @@ -23886,14 +23877,14 @@ end end loop $while-continue|1 - local.get $3 + local.get $2 i64.const 0 i64.ne if - local.get $3 - local.get $7 + local.get $2 + local.get $5 i64.div_u - local.set $3 + local.set $2 local.get $0 i32.const 1 i32.add @@ -23905,25 +23896,25 @@ i32.const 1 i32.sub end - local.get $5 + local.get $4 i32.add - local.tee $0 + local.tee $7 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 $6 local.get $0 - local.get $2 + local.get $6 + local.get $7 + local.get $1 call $~lib/util/number/utoa64_any_core end end - local.get $5 + local.get $4 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -23931,7 +23922,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -24033,16 +24024,16 @@ i32.add end end - 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 - local.get $1 - local.get $0 local.get $2 + local.get $0 + local.get $1 call $~lib/util/number/utoa32_dec_lut else local.get $1 @@ -24058,30 +24049,28 @@ i32.shr_s i32.const 1 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 local.get $0 i64.extend_i32_u local.set $3 - local.get $2 - 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 $1 + local.get $2 i32.add local.get $3 i32.wrap_i64 @@ -24100,11 +24089,11 @@ br $while-continue|0 end end - local.get $0 + local.get $1 i32.const 1 i32.and if - local.get $1 + local.get $2 local.get $3 i32.wrap_i64 i32.const 6 @@ -24119,10 +24108,9 @@ block $__inlined_func$~lib/util/number/ulog_base (result i32) local.get $0 i64.extend_i32_u - local.tee $5 + local.tee $6 local.set $3 local.get $1 - local.tee $2 i32.popcnt i32.const 1 i32.eq @@ -24133,7 +24121,7 @@ i32.wrap_i64 i32.sub i32.const 31 - local.get $2 + local.get $1 i32.clz i32.sub i32.div_u @@ -24141,9 +24129,9 @@ i32.add br $__inlined_func$~lib/util/number/ulog_base end - local.get $2 + local.get $1 i64.extend_i32_s - local.tee $6 + local.tee $5 local.set $4 i32.const 1 local.set $0 @@ -24173,7 +24161,7 @@ i64.ne if local.get $3 - local.get $6 + local.get $5 i64.div_u local.set $3 local.get $0 @@ -24192,12 +24180,12 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - local.get $5 - local.get $0 local.get $2 + local.get $6 + local.get $0 + local.get $1 call $~lib/util/number/utoa64_any_core end end @@ -24205,7 +24193,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) (local $2 i64) @@ -24974,22 +24962,22 @@ call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 - i32.const 22864 local.get $1 + i32.const 22864 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) (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 b3930647c5..61749a24f2 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -286,19 +286,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -910,38 +908,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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 + 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) @@ -1543,11 +1539,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $4 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1558,19 +1554,20 @@ call $~lib/builtins/abort unreachable end + local.get $4 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select - local.tee $3 + local.tee $5 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1578,7 +1575,7 @@ memory.size local.tee $2 i32.const 4 - local.get $5 + local.get $4 i32.load offset=1568 local.get $2 i32.const 16 @@ -1589,16 +1586,16 @@ i32.shl i32.const 1 i32.const 27 - local.get $3 + local.get $5 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $5 i32.add - local.get $3 - local.get $3 + local.get $5 + local.get $5 i32.const 536870910 i32.lt_u select @@ -1609,16 +1606,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1626,7 +1623,7 @@ unreachable end end - local.get $5 + local.get $4 local.get $2 i32.const 16 i32.shl @@ -1634,8 +1631,8 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $4 local.get $5 - local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $2 i32.eqz @@ -1652,7 +1649,7 @@ i32.load i32.const -4 i32.and - local.get $3 + local.get $5 i32.lt_u if i32.const 0 @@ -1662,13 +1659,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $5 i32.const 4 i32.add i32.const 15 @@ -1681,40 +1678,40 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $5 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $6 + local.get $3 i32.const 2 i32.and - local.get $3 + local.get $5 i32.or i32.store - local.get $3 + local.get $5 local.get $2 i32.const 4 i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $4 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $6 + local.get $3 i32.const -2 i32.and i32.store @@ -1744,8 +1741,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1976,6 +1973,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -2010,47 +2008,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $1 + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -2061,17 +2059,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -2084,70 +2081,72 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if local.get $0 - local.get $0 + local.tee $1 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $2 local.get $1 - local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $2 + local.get $0 i32.const -2 i32.and local.set $0 @@ -2155,8 +2154,9 @@ end end i32.const 0 + local.set $1 end - local.tee $0 + local.get $1 i32.eqz if i32.const 1648 @@ -2166,7 +2166,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) @@ -3046,25 +3046,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/string/String#concat (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 2700 - i32.lt_s - if - i32.const 19104 - i32.const 19152 - 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 2700 + i32.lt_s + if + i32.const 19104 + i32.const 19152 + 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/string/String#concat local.get $0 i32.const 20 i32.sub @@ -3073,7 +3073,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $2 + local.tee $3 local.get $1 i32.const 20 i32.sub @@ -3082,9 +3082,9 @@ i32.shr_u i32.const 1 i32.shl - local.tee $3 - i32.add local.tee $4 + i32.add + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3092,30 +3092,31 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1824 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store - local.get $4 - local.get $0 local.get $2 + local.get $0 + local.get $3 call $~lib/memory/memory.copy local.get $2 - local.get $4 + local.get $3 i32.add local.get $1 - local.get $3 + 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 end + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -3209,7 +3210,7 @@ local.tee $0 i32.add local.set $2 - loop $while-continue|03 + loop $while-continue|01 local.get $0 local.get $2 i32.lt_u @@ -3232,7 +3233,7 @@ i32.const 12 i32.add local.set $0 - br $while-continue|03 + br $while-continue|01 end end br $folding-inner0 @@ -3343,11 +3344,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -3396,7 +3397,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -3456,7 +3457,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -3532,9 +3533,9 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 local.get $2 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -3543,10 +3544,10 @@ call $~lib/util/hash/HASH<~lib/string/String> local.tee $6 call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $0 + local.tee $1 if - local.get $0 local.get $1 + local.get $0 i32.store offset=4 else local.get $5 @@ -3583,26 +3584,26 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + 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 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 local.get $7 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3 @@ -3623,7 +3624,7 @@ i32.add local.set $10 local.get $3 - local.set $0 + local.set $1 loop $while-continue|0 local.get $4 local.get $10 @@ -3640,14 +3641,14 @@ i32.load local.tee $11 i32.store offset=8 - local.get $0 + local.get $1 local.get $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 $1 local.get $11 call $~lib/util/hash/HASH<~lib/string/String> local.get $7 @@ -3660,12 +3661,12 @@ i32.load i32.store offset=8 local.get $11 - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 12 i32.add - local.set $0 + local.set $1 end local.get $4 i32.const 12 @@ -3712,7 +3713,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.load offset=8 - local.tee $0 + local.tee $1 i32.store local.get $5 local.get $5 @@ -3724,17 +3725,17 @@ local.get $3 i32.const 12 i32.mul - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 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 $0 local.get $1 + local.get $0 i32.store offset=4 local.get $5 local.get $5 @@ -3742,7 +3743,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $0 + local.get $1 local.get $5 i32.load local.get $5 @@ -3756,7 +3757,7 @@ i32.load i32.store offset=8 local.get $3 - local.get $0 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -3764,24 +3765,24 @@ 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 - local.get $0 + 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 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store local.get $5 i32.load - local.get $1 + local.get $0 + local.tee $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3791,23 +3792,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 @@ -3819,28 +3820,28 @@ i32.load local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|02 + loop $while-continue|06 local.get $0 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 - br $while-continue|02 + br $while-continue|06 end end i32.const 0 @@ -3890,7 +3891,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3915,37 +3916,37 @@ i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $5 i32.load offset=8 - local.tee $4 + local.tee $1 local.get $5 i32.load offset=16 i32.const 12 i32.mul i32.add local.set $10 - local.get $3 + local.get $4 local.set $0 - loop $while-continue|03 - local.get $4 + loop $while-continue|00 + local.get $1 local.get $10 i32.ne if - local.get $4 + local.get $1 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $4 + local.get $1 i32.load local.tee $11 i32.store local.get $0 - local.get $4 + local.get $1 i32.load offset=4 i32.store offset=4 local.get $0 @@ -3959,23 +3960,23 @@ 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 @@ -3994,11 +3995,11 @@ i32.add local.set $0 end - local.get $4 + local.get $1 i32.const 12 i32.add - local.set $4 - br $while-continue|03 + local.set $1 + br $while-continue|00 end end local.get $5 @@ -4015,12 +4016,12 @@ local.get $7 i32.store offset=4 local.get $5 - local.get $3 + local.get $4 i32.store offset=8 - local.get $3 + local.get $4 if local.get $5 - local.get $3 + local.get $4 i32.const 0 call $byn-split-outlined-A$~lib/rt/itcms/__link end @@ -4044,17 +4045,17 @@ local.get $5 local.get $5 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 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 8c5d167c33..bd3f8b1c8f 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -3,9 +3,9 @@ (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) (type $i64_i64_=>_i32 (func (param i64 i64) (result i32))) (type $f32_i32_i32_=>_i32 (func (param f32 i32 i32) (result i32))) @@ -846,19 +846,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -1520,38 +1518,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1869,7 +1865,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1073741820 i32.gt_u @@ -1881,6 +1876,7 @@ call $~lib/builtins/abort unreachable end + local.get $0 i32.const 12 local.get $1 i32.const 19 @@ -1990,7 +1986,7 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.set $4 + local.set $2 local.get $3 i32.const 4 i32.add @@ -2004,17 +2000,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and local.get $3 i32.sub - local.tee $2 + local.tee $4 i32.const 16 i32.ge_u if local.get $1 - local.get $4 + local.get $2 i32.const 2 i32.and local.get $3 @@ -2025,19 +2021,19 @@ i32.const 4 i32.add i32.add - local.tee $3 - local.get $2 + local.tee $2 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store @@ -2325,26 +2321,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -4861,6 +4857,7 @@ (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $0 i32.load offset=8 local.get $1 @@ -4872,15 +4869,16 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $4 loop $for-loop|0 local.get $2 - local.get $3 + local.get $4 i32.lt_s if local.get $0 local.get $2 call $~lib/typedarray/Int8Array#__get + local.set $3 local.get $1 i32.load offset=12 local.get $2 @@ -4898,6 +4896,7 @@ i32.load offset=4 i32.add i32.load8_s + local.get $3 i32.ne if i32.const 0 @@ -6307,94 +6306,74 @@ f64.const 0 f64.eq ) - (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) - (local $1 i32) - (local $2 i64) - (local $3 i32) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i64) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.tee $5 + (local $7 i64) + local.get $1 i32.const 1 i32.gt_u if - local.get $5 + local.get $1 i32.const 1 i32.shr_u local.set $4 - local.get $5 + local.get $1 i32.const 8 i32.sub - local.set $6 + local.set $5 loop $while-continue|0 local.get $4 - local.get $1 + local.get $2 i32.const 7 i32.add i32.gt_u if - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.tee $7 + local.tee $6 i64.load - local.tee $2 + local.tee $3 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $2 + local.get $3 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $2 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $2 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - local.set $2 - local.get $7 - local.get $3 + local.set $3 local.get $6 + local.get $0 + local.get $5 i32.add - local.get $1 + local.get $2 i32.sub - local.tee $7 + local.tee $6 i64.load - local.tee $8 + local.tee $7 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $8 + local.get $7 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $8 + local.tee $7 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $8 + local.get $7 i64.const 281470681808895 i64.and i64.const 16 @@ -6403,52 +6382,63 @@ i64.const 32 i64.rotr i64.store - local.get $7 - local.get $2 + local.get $6 + local.get $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr i64.store - local.get $1 + local.get $2 i32.const 8 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $5 + local.get $1 i32.const 1 i32.sub - local.set $5 + local.set $1 loop $while-continue|1 - local.get $1 + local.get $2 local.get $4 i32.lt_u if - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.tee $6 + local.tee $5 i32.load8_u - local.set $7 - local.get $6 + local.set $6 local.get $5 local.get $1 + local.get $2 i32.sub - local.get $3 + local.get $0 i32.add - local.tee $6 + local.tee $5 i32.load8_u i32.store8 + local.get $5 local.get $6 - local.get $7 i32.store8 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $while-continue|1 end end end - local.get $0 ) (func $~lib/typedarray/Int16Array#reverse (param $0 i32) (result i32) (local $1 i32) @@ -6580,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 $3 + local.tee $1 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $4 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 $4 + 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 $2 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.eqz @@ -6666,26 +6658,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $2 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|03 + local.set $2 + loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 11 @@ -6695,7 +6687,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|03 + br $while-continue|02 end end i32.const -1 @@ -6716,37 +6708,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|07 + local.set $2 + loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 255 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|07 + br $while-continue|05 end end i32.const -1 @@ -6767,37 +6759,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.09 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.09 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|011 + local.set $2 + loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|011 + br $while-continue|08 end end i32.const -1 @@ -6818,37 +6810,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|015 + local.set $2 + loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|015 + br $while-continue|011 end end i32.const -1 @@ -6869,37 +6861,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 3 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|019 + local.set $2 + loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|019 + br $while-continue|014 end end i32.const -1 @@ -6920,37 +6912,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.021 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 4 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.021 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|023 + local.set $2 + loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|023 + br $while-continue|017 end end i32.const -1 @@ -6971,37 +6963,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.025 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 10 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.025 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|027 + local.set $2 + loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|027 + br $while-continue|020 end end i32.const -1 @@ -7019,18 +7011,18 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 - local.get $2 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 + local.get $4 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -7039,13 +7031,13 @@ i32.const 0 i32.gt_s select - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|031 - local.get $0 - local.get $3 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|023 + local.get $1 + local.get $2 i32.lt_s if local.get $0 @@ -7054,18 +7046,18 @@ i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|031 + 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 1 i32.ne if @@ -7078,44 +7070,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $4 i32.load offset=8 - local.set $3 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 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 $2 - local.get $3 i32.add local.get $2 i32.const 1 i32.sub - local.get $3 + local.get $0 + local.get $0 local.get $2 - local.get $3 - i32.le_s + i32.ge_s select - local.get $3 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|00 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 @@ -7141,42 +7131,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 - local.tee $3 - local.set $2 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 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 @@ -7205,42 +7195,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 - local.tee $3 - local.set $2 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 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 @@ -7269,42 +7259,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 - local.tee $3 - local.set $2 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 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 @@ -7334,8 +7324,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $0 - local.tee $2 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz @@ -7349,17 +7338,17 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|033 + local.set $2 + loop $while-continue|024 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -7369,7 +7358,7 @@ i32.const 1 i32.sub local.set $0 - br $while-continue|033 + br $while-continue|024 end end i32.const -1 @@ -7388,12 +7377,12 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 local.get $0 i32.const 1 i32.sub @@ -7403,27 +7392,27 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|037 + local.set $2 + loop $while-continue|027 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 local.get $1 i32.const 1 i32.sub local.set $0 - br $while-continue|037 + br $while-continue|027 end end i32.const -1 @@ -7442,12 +7431,12 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.039 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.039 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 local.get $0 i32.const 1 i32.sub @@ -7457,27 +7446,27 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|041 + local.set $2 + loop $while-continue|030 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.039 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 local.get $1 i32.const 1 i32.sub local.set $0 - br $while-continue|041 + br $while-continue|030 end end i32.const -1 @@ -7496,12 +7485,12 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.043 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.043 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 local.get $0 i32.const 1 i32.sub @@ -7511,27 +7500,27 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|045 + local.set $2 + loop $while-continue|033 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.043 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 local.get $1 i32.const 1 i32.sub local.set $0 - br $while-continue|045 + br $while-continue|033 end end i32.const -1 @@ -7549,22 +7538,22 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 - local.get $2 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + local.get $0 i32.const 10 i32.sub - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|049 - local.get $0 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|036 + local.get $1 i32.const 0 i32.ge_s if @@ -7574,18 +7563,18 @@ i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|049 + local.set $1 + br $while-continue|036 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -7597,22 +7586,22 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.051 - local.get $2 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.051 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 + local.get $0 i32.const 11 i32.sub - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|053 - local.get $0 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|039 + local.get $1 i32.const 0 i32.ge_s if @@ -7622,18 +7611,18 @@ i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.051 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|053 + local.set $1 + br $while-continue|039 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -7645,7 +7634,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 4 i32.const 9 call $~lib/typedarray/Int8Array#subarray @@ -7655,7 +7644,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.055 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 local.get $4 i32.load offset=8 local.tee $3 @@ -7664,11 +7653,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|057 + loop $while-continue|042 local.get $0 local.get $3 i32.lt_s @@ -7680,12 +7669,12 @@ i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|057 + br $while-continue|042 end end i32.const -1 @@ -7706,7 +7695,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 local.get $4 i32.load offset=8 local.tee $3 @@ -7715,11 +7704,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|061 + loop $while-continue|045 local.get $0 local.get $3 i32.lt_s @@ -7731,12 +7720,12 @@ i32.load8_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|061 + br $while-continue|045 end end i32.const -1 @@ -7755,7 +7744,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.063 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 local.get $4 i32.load offset=8 local.tee $3 @@ -7764,11 +7753,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|065 + loop $while-continue|048 local.get $0 local.get $3 i32.lt_s @@ -7780,12 +7769,12 @@ i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|065 + br $while-continue|048 end end i32.const -1 @@ -7806,7 +7795,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.067 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 local.get $4 i32.load offset=8 local.tee $3 @@ -7815,11 +7804,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|069 + loop $while-continue|051 local.get $0 local.get $3 i32.lt_s @@ -7831,12 +7820,12 @@ i32.load8_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|069 + br $while-continue|051 end end i32.const -1 @@ -7857,7 +7846,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.071 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 local.get $4 i32.load offset=8 local.tee $3 @@ -7866,11 +7855,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|073 + loop $while-continue|054 local.get $0 local.get $3 i32.lt_s @@ -7882,12 +7871,12 @@ i32.load8_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|073 + br $while-continue|054 end end i32.const -1 @@ -7908,7 +7897,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.075 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 local.get $4 i32.load offset=8 local.tee $3 @@ -7917,11 +7906,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|077 + loop $while-continue|057 local.get $0 local.get $3 i32.lt_s @@ -7933,12 +7922,12 @@ i32.load8_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|077 + br $while-continue|057 end end i32.const -1 @@ -7959,7 +7948,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.079 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 local.get $4 i32.load offset=8 local.tee $3 @@ -7968,11 +7957,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|081 + loop $while-continue|060 local.get $0 local.get $3 i32.lt_s @@ -7984,12 +7973,12 @@ i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|081 + br $while-continue|060 end end i32.const -1 @@ -8007,10 +7996,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.083 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 local.get $4 i32.load offset=8 local.tee $3 @@ -8019,34 +8008,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|085 - local.get $0 + loop $while-continue|063 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.083 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|085 + local.set $1 + br $while-continue|063 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -8084,65 +8073,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 $3 + local.tee $1 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $4 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 $4 + 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 $2 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.eqz @@ -8171,26 +8162,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $2 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|03 + local.set $2 + loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 11 @@ -8200,7 +8191,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|03 + br $while-continue|02 end end i32.const -1 @@ -8221,37 +8212,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|07 + local.set $2 + loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 255 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|07 + br $while-continue|05 end end i32.const -1 @@ -8272,37 +8263,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|011 + local.set $2 + loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|011 + br $while-continue|08 end end i32.const -1 @@ -8323,37 +8314,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|015 + local.set $2 + loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|015 + br $while-continue|011 end end i32.const -1 @@ -8374,37 +8365,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 3 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|019 + local.set $2 + loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|019 + br $while-continue|014 end end i32.const -1 @@ -8425,37 +8416,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 4 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|023 + local.set $2 + loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|023 + br $while-continue|017 end end i32.const -1 @@ -8476,37 +8467,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 10 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|027 + local.set $2 + loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|027 + br $while-continue|020 end end i32.const -1 @@ -8524,18 +8515,18 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $2 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $4 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -8544,13 +8535,13 @@ i32.const 0 i32.gt_s select - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|031 - local.get $0 - local.get $3 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|023 + local.get $1 + local.get $2 i32.lt_s if local.get $0 @@ -8559,18 +8550,18 @@ i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|031 + 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 1 i32.ne if @@ -8583,44 +8574,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $4 i32.load offset=8 - local.set $3 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 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 $2 - local.get $3 i32.add local.get $2 i32.const 1 i32.sub - local.get $3 + local.get $0 + local.get $0 local.get $2 - local.get $3 - i32.le_s + i32.ge_s select - local.get $3 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|00 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 @@ -8646,42 +8635,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 - local.tee $3 - local.set $2 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 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 @@ -8710,42 +8699,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 - local.tee $3 - local.set $2 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 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 @@ -8774,42 +8763,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 - local.tee $3 - local.set $2 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 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 @@ -8839,8 +8828,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $0 - local.tee $2 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz @@ -8854,17 +8842,17 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|033 + local.set $2 + loop $while-continue|024 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -8874,7 +8862,7 @@ i32.const 1 i32.sub local.set $0 - br $while-continue|033 + br $while-continue|024 end end i32.const -1 @@ -8893,12 +8881,12 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 local.get $0 i32.const 1 i32.sub @@ -8908,27 +8896,27 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|037 + local.set $2 + loop $while-continue|027 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 local.get $1 i32.const 1 i32.sub local.set $0 - br $while-continue|037 + br $while-continue|027 end end i32.const -1 @@ -8947,12 +8935,12 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 local.get $0 i32.const 1 i32.sub @@ -8962,27 +8950,27 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|041 + local.set $2 + loop $while-continue|030 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 local.get $1 i32.const 1 i32.sub local.set $0 - br $while-continue|041 + br $while-continue|030 end end i32.const -1 @@ -9001,12 +8989,12 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 local.get $0 i32.const 1 i32.sub @@ -9016,27 +9004,27 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|045 + local.set $2 + loop $while-continue|033 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 local.get $1 i32.const 1 i32.sub local.set $0 - br $while-continue|045 + br $while-continue|033 end end i32.const -1 @@ -9054,22 +9042,22 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $2 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $0 i32.const 10 i32.sub - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|049 - local.get $0 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|036 + local.get $1 i32.const 0 i32.ge_s if @@ -9079,18 +9067,18 @@ i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|049 + local.set $1 + br $while-continue|036 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -9102,22 +9090,22 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 - local.get $2 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $0 i32.const 11 i32.sub - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|053 - local.get $0 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|039 + local.get $1 i32.const 0 i32.ge_s if @@ -9127,18 +9115,18 @@ i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|053 + local.set $1 + br $while-continue|039 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9150,7 +9138,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9 call $~lib/typedarray/Uint8Array#subarray local.tee $4 @@ -9159,7 +9147,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $4 i32.load offset=8 local.tee $3 @@ -9168,11 +9156,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|057 + loop $while-continue|042 local.get $0 local.get $3 i32.lt_s @@ -9184,12 +9172,12 @@ i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|057 + br $while-continue|042 end end i32.const -1 @@ -9210,7 +9198,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $4 i32.load offset=8 local.tee $3 @@ -9219,11 +9207,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|061 + loop $while-continue|045 local.get $0 local.get $3 i32.lt_s @@ -9235,12 +9223,12 @@ i32.load8_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|061 + br $while-continue|045 end end i32.const -1 @@ -9259,7 +9247,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $4 i32.load offset=8 local.tee $3 @@ -9268,11 +9256,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|065 + loop $while-continue|048 local.get $0 local.get $3 i32.lt_s @@ -9284,12 +9272,12 @@ i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|065 + br $while-continue|048 end end i32.const -1 @@ -9310,7 +9298,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $4 i32.load offset=8 local.tee $3 @@ -9319,11 +9307,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|069 + loop $while-continue|051 local.get $0 local.get $3 i32.lt_s @@ -9335,12 +9323,12 @@ i32.load8_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|069 + br $while-continue|051 end end i32.const -1 @@ -9361,7 +9349,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $4 i32.load offset=8 local.tee $3 @@ -9370,11 +9358,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|073 + loop $while-continue|054 local.get $0 local.get $3 i32.lt_s @@ -9386,12 +9374,12 @@ i32.load8_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|073 + br $while-continue|054 end end i32.const -1 @@ -9412,7 +9400,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $4 i32.load offset=8 local.tee $3 @@ -9421,11 +9409,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|077 + loop $while-continue|057 local.get $0 local.get $3 i32.lt_s @@ -9437,12 +9425,12 @@ i32.load8_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|077 + br $while-continue|057 end end i32.const -1 @@ -9463,7 +9451,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $4 i32.load offset=8 local.tee $3 @@ -9472,11 +9460,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|081 + loop $while-continue|060 local.get $0 local.get $3 i32.lt_s @@ -9488,12 +9476,12 @@ i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|081 + br $while-continue|060 end end i32.const -1 @@ -9511,10 +9499,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $4 i32.load offset=8 local.tee $3 @@ -9523,34 +9511,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|085 - local.get $0 + loop $while-continue|063 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|085 + local.set $1 + br $while-continue|063 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -9588,65 +9576,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 $3 + local.tee $1 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $4 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 $4 + 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 $2 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.eqz @@ -9675,26 +9665,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $2 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|03 + local.set $2 + loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 11 @@ -9704,7 +9694,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|03 + br $while-continue|02 end end i32.const -1 @@ -9725,37 +9715,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|07 + local.set $2 + loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 255 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|07 + br $while-continue|05 end end i32.const -1 @@ -9776,37 +9766,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|011 + local.set $2 + loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|011 + br $while-continue|08 end end i32.const -1 @@ -9827,37 +9817,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|015 + local.set $2 + loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|015 + br $while-continue|011 end end i32.const -1 @@ -9878,37 +9868,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 3 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|019 + local.set $2 + loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|019 + br $while-continue|014 end end i32.const -1 @@ -9929,37 +9919,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 4 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|023 + local.set $2 + loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|023 + br $while-continue|017 end end i32.const -1 @@ -9980,37 +9970,37 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 10 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|027 + local.set $2 + loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|027 + br $while-continue|020 end end i32.const -1 @@ -10028,18 +10018,18 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $2 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $4 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -10048,13 +10038,13 @@ i32.const 0 i32.gt_s select - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|031 - local.get $0 - local.get $3 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|023 + local.get $1 + local.get $2 i32.lt_s if local.get $0 @@ -10063,18 +10053,18 @@ i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|031 + 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 1 i32.ne if @@ -10087,44 +10077,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $4 i32.load offset=8 - local.set $3 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 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 $2 - local.get $3 i32.add local.get $2 i32.const 1 i32.sub - local.get $3 + local.get $0 + local.get $0 local.get $2 - local.get $3 - i32.le_s + i32.ge_s select - local.get $3 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 loop $while-continue|00 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 @@ -10150,42 +10138,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 - local.tee $3 - local.set $2 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 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 @@ -10214,42 +10202,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 - local.tee $3 - local.set $2 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 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 @@ -10278,42 +10266,42 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 - local.tee $3 - local.set $2 + local.tee $2 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $0 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 - local.set $2 + local.set $0 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 @@ -10343,8 +10331,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $0 - local.tee $2 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz @@ -10358,17 +10345,17 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|033 + local.set $2 + loop $while-continue|024 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -10378,7 +10365,7 @@ i32.const 1 i32.sub local.set $0 - br $while-continue|033 + br $while-continue|024 end end i32.const -1 @@ -10397,12 +10384,12 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 local.get $0 i32.const 1 i32.sub @@ -10412,27 +10399,27 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|037 + local.set $2 + loop $while-continue|027 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 local.get $1 i32.const 1 i32.sub local.set $0 - br $while-continue|037 + br $while-continue|027 end end i32.const -1 @@ -10451,12 +10438,12 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 local.get $0 i32.const 1 i32.sub @@ -10466,27 +10453,27 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|041 + local.set $2 + loop $while-continue|030 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 local.get $1 i32.const 1 i32.sub local.set $0 - br $while-continue|041 + br $while-continue|030 end end i32.const -1 @@ -10505,12 +10492,12 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $4 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 local.get $0 i32.const 1 i32.sub @@ -10520,27 +10507,27 @@ i32.le_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|045 + local.set $2 + loop $while-continue|033 local.get $0 i32.const 0 i32.ge_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 local.get $1 i32.const 1 i32.sub local.set $0 - br $while-continue|045 + br $while-continue|033 end end i32.const -1 @@ -10558,22 +10545,22 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $2 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $0 i32.const 10 i32.sub - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|049 - local.get $0 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|036 + local.get $1 i32.const 0 i32.ge_s if @@ -10583,18 +10570,18 @@ i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|049 + local.set $1 + br $while-continue|036 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -10606,22 +10593,22 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 - local.get $2 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $4 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $0 i32.const 11 i32.sub - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|053 - local.get $0 + local.get $4 + i32.load offset=4 + local.set $0 + loop $while-continue|039 + local.get $1 i32.const 0 i32.ge_s if @@ -10631,18 +10618,18 @@ i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|053 + local.set $1 + br $while-continue|039 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -10654,7 +10641,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9 call $~lib/typedarray/Uint8ClampedArray#subarray local.tee $4 @@ -10663,7 +10650,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $4 i32.load offset=8 local.tee $3 @@ -10672,11 +10659,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|057 + loop $while-continue|042 local.get $0 local.get $3 i32.lt_s @@ -10688,12 +10675,12 @@ i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|057 + br $while-continue|042 end end i32.const -1 @@ -10714,7 +10701,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $4 i32.load offset=8 local.tee $3 @@ -10723,11 +10710,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|061 + loop $while-continue|045 local.get $0 local.get $3 i32.lt_s @@ -10739,12 +10726,12 @@ i32.load8_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|061 + br $while-continue|045 end end i32.const -1 @@ -10763,7 +10750,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $4 i32.load offset=8 local.tee $3 @@ -10772,11 +10759,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|065 + loop $while-continue|048 local.get $0 local.get $3 i32.lt_s @@ -10788,12 +10775,12 @@ i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|065 + br $while-continue|048 end end i32.const -1 @@ -10814,7 +10801,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $4 i32.load offset=8 local.tee $3 @@ -10823,11 +10810,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|069 + loop $while-continue|051 local.get $0 local.get $3 i32.lt_s @@ -10839,12 +10826,12 @@ i32.load8_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|069 + br $while-continue|051 end end i32.const -1 @@ -10865,7 +10852,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $4 i32.load offset=8 local.tee $3 @@ -10874,11 +10861,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|073 + loop $while-continue|054 local.get $0 local.get $3 i32.lt_s @@ -10890,12 +10877,12 @@ i32.load8_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|073 + br $while-continue|054 end end i32.const -1 @@ -10916,7 +10903,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $4 i32.load offset=8 local.tee $3 @@ -10925,11 +10912,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|077 + loop $while-continue|057 local.get $0 local.get $3 i32.lt_s @@ -10941,12 +10928,12 @@ i32.load8_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|077 + br $while-continue|057 end end i32.const -1 @@ -10967,7 +10954,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $4 i32.load offset=8 local.tee $3 @@ -10976,11 +10963,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|081 + loop $while-continue|060 local.get $0 local.get $3 i32.lt_s @@ -10992,12 +10979,12 @@ i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|081 + br $while-continue|060 end end i32.const -1 @@ -11015,10 +11002,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $4 i32.load offset=8 local.tee $3 @@ -11027,34 +11014,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|085 - local.get $0 + loop $while-continue|063 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|085 + local.set $1 + br $while-continue|063 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11155,7 +11142,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -11172,81 +11158,84 @@ 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 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 7728 i32.store - local.get $0 + local.get $1 i32.const 7740 i32.load - local.tee $0 + local.tee $1 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $4 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $3 - local.get $1 + local.get $4 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__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 $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|0 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|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 @@ -11256,46 +11245,49 @@ 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/Int16Array,i16>|inlined.01 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|02 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|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 @@ -11307,46 +11299,49 @@ 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/Int16Array,i16>|inlined.04 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|05 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 65535 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|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 @@ -11358,46 +11353,49 @@ 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/Int16Array,i16>|inlined.07 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|08 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|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 @@ -11409,50 +11407,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/Int16Array,i16>|inlined.010 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|011 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|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 @@ -11464,50 +11462,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/Int16Array,i16>|inlined.013 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|014 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|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 @@ -11519,50 +11517,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/Int16Array,i16>|inlined.016 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|017 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|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 @@ -11574,50 +11572,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/Int16Array,i16>|inlined.019 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|020 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|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 @@ -11629,20 +11627,20 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $4 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -11652,25 +11650,24 @@ i32.gt_s select local.set $1 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $0 loop $while-continue|023 local.get $1 - local.get $4 + local.get $2 i32.lt_s if local.get $1 - local.tee $0 i32.const 1 i32.shl - local.get $5 + local.get $0 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $0 + local.get $1 i32.const 1 i32.add local.set $1 @@ -11678,9 +11675,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 @@ -11693,7 +11690,7 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $4 i32.const 0 call $~lib/typedarray/Int16Array#lastIndexOf@varargs if @@ -11706,7 +11703,7 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $4 i32.const 11 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 @@ -11721,7 +11718,7 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $4 i32.const -1 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 @@ -11736,7 +11733,7 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $4 i32.const 3 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const 3 @@ -11752,7 +11749,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -11767,19 +11764,20 @@ i32.const 4 i32.le_u select - local.set $1 - local.get $3 - i32.load offset=4 local.set $0 + local.get $4 + 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.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add i32.load16_u i32.const 3 @@ -11788,7 +11786,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -11808,14 +11806,14 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $3 + 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 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 local.get $0 i32.const 1 i32.sub @@ -11824,29 +11822,30 @@ i32.const 3 i32.le_u select - local.set $1 - local.get $3 - i32.load offset=4 local.set $0 - loop $while-continue|03 - local.get $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|027 end end i32.const -1 @@ -11865,14 +11864,14 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 - local.get $3 + 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 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 local.get $0 i32.const 1 i32.sub @@ -11881,29 +11880,30 @@ i32.const 2 i32.le_u select - local.set $1 - local.get $3 - i32.load offset=4 local.set $0 - loop $while-continue|07 - local.get $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|030 end end i32.const -1 @@ -11922,14 +11922,14 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.09 - local.get $3 + 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 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.09 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 local.get $0 i32.const 1 i32.sub @@ -11938,29 +11938,30 @@ i32.const 100 i32.le_u select - local.set $1 - local.get $3 - i32.load offset=4 local.set $0 - loop $while-continue|01125 - local.get $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.09 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|01125 + local.set $0 + br $while-continue|033 end end i32.const -1 @@ -11979,22 +11980,22 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 - local.get $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 local.get $0 i32.const 10 i32.sub local.set $1 - local.get $3 + local.get $4 i32.load offset=4 local.set $0 - loop $while-continue|015 + loop $while-continue|036 local.get $1 i32.const 0 i32.ge_s @@ -12007,12 +12008,12 @@ i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|015 + br $while-continue|036 end end i32.const -1 @@ -12031,22 +12032,22 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 - local.get $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 local.get $0 i32.const 11 i32.sub local.set $1 - local.get $3 + local.get $4 i32.load offset=4 local.set $0 - loop $while-continue|019 + loop $while-continue|039 local.get $1 i32.const 0 i32.ge_s @@ -12059,12 +12060,12 @@ i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|019 + br $while-continue|039 end end i32.const -1 @@ -12082,50 +12083,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 9 call $~lib/typedarray/Int16Array#subarray - local.tee $1 + local.tee $4 i32.store offset=8 - i32.const -1 + i32.const 0 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.027 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.027 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|028 - local.get $2 + local.set $2 + loop $while-continue|042 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.027 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|028 + 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 @@ -12137,46 +12143,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.030 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.030 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|031 - local.get $2 + local.set $2 + loop $while-continue|045 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.030 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|031 + 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 @@ -12186,46 +12195,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.033 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.033 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|034 - local.get $2 + local.set $2 + loop $while-continue|048 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.033 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|034 + 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 @@ -12237,46 +12249,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.036 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.036 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|037 - local.get $2 + local.set $2 + loop $while-continue|051 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.036 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|037 + 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 @@ -12288,46 +12303,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.039 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.039 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|040 - local.get $2 + local.set $2 + loop $while-continue|054 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.039 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|040 + 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 @@ -12339,46 +12357,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.042 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.042 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|043 - local.get $2 + local.set $2 + loop $while-continue|057 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.042 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|043 + 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 @@ -12390,11 +12411,11 @@ unreachable end i32.const 1 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.045 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -12404,36 +12425,36 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.045 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|046 - local.get $2 + local.set $2 + loop $while-continue|060 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.045 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|046 + 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 @@ -12445,11 +12466,11 @@ unreachable end i32.const 2 - local.set $2 + local.set $1 i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.048 - local.get $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -12459,30 +12480,30 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.048 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 + local.get $4 i32.load offset=4 - local.set $1 - loop $while-continue|049 - local.get $2 + local.set $2 + loop $while-continue|063 + local.get $1 local.get $3 i32.lt_s if - local.get $2 + local.get $1 local.tee $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.048 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 + local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|049 + local.set $1 + br $while-continue|063 end end i32.const -1 @@ -12510,7 +12531,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -12527,82 +12547,85 @@ 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 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 7728 i32.store - local.get $0 + local.get $1 i32.const 7740 i32.load - local.tee $0 + local.tee $1 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $4 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $3 - local.get $1 + local.get $4 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__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 $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|0 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|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 @@ -12612,46 +12635,49 @@ 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/Uint16Array,u16>|inlined.01 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|02 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|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 @@ -12663,46 +12689,49 @@ 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/Uint16Array,u16>|inlined.04 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|05 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 65535 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|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 @@ -12714,46 +12743,49 @@ 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/Uint16Array,u16>|inlined.07 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|08 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|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 @@ -12765,50 +12797,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/Uint16Array,u16>|inlined.010 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|011 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|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 @@ -12820,50 +12852,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/Uint16Array,u16>|inlined.013 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|014 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|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 @@ -12875,50 +12907,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/Uint16Array,u16>|inlined.016 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|017 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|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 @@ -12930,50 +12962,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/Uint16Array,u16>|inlined.019 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $2 loop $while-continue|020 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $2 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|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 @@ -12985,20 +13017,20 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $4 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -13008,25 +13040,24 @@ i32.gt_s select local.set $1 - local.get $3 + local.get $4 i32.load offset=4 - local.set $5 + local.set $0 loop $while-continue|023 local.get $1 - local.get $4 + local.get $2 i32.lt_s if local.get $1 - local.tee $0 i32.const 1 i32.shl - local.get $5 + local.get $0 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $0 + local.get $1 i32.const 1 i32.add local.set $1 @@ -13034,9 +13065,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 @@ -13049,7 +13080,7 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $4 i32.const 0 call $~lib/typedarray/Int16Array#lastIndexOf@varargs if @@ -13062,7 +13093,7 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $4 i32.const 11 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 @@ -13077,7 +13108,7 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $4 i32.const -1 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 @@ -13092,7 +13123,7 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $4 i32.const 3 call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const 3 @@ -13108,7 +13139,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -13123,19 +13154,20 @@ i32.const 4 i32.le_u select - local.set $1 - local.get $3 - i32.load offset=4 local.set $0 + local.get $4 + 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.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add i32.load16_u i32.const 3 @@ -13144,7 +13176,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -13164,14 +13196,14 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $3 + 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 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 local.get $0 i32.const 1 i32.sub @@ -13180,29 +13212,30 @@ i32.const 3 i32.le_u select - local.set $1 - local.get $3 - i32.load offset=4 local.set $0 - loop $while-continue|03 - local.get $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|027 end end i32.const -1 @@ -13221,14 +13254,14 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 - local.get $3 + 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 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 local.get $0 i32.const 1 i32.sub @@ -13237,29 +13270,30 @@ i32.const 2 i32.le_u select - local.set $1 - local.get $3 - i32.load offset=4 local.set $0 - loop $while-continue|07 - local.get $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|030 end end i32.const -1 @@ -13278,14 +13312,14 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.09 - local.get $3 + 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 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.09 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 local.get $0 i32.const 1 i32.sub @@ -13294,29 +13328,30 @@ i32.const 100 i32.le_u select - local.set $1 - local.get $3 - i32.load offset=4 local.set $0 - loop $while-continue|01125 - local.get $1 + local.get $4 + i32.load offset=4 + local.set $2 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.09 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|01125 + local.set $0 + br $while-continue|033 end end i32.const -1 @@ -13335,22 +13370,22 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 - local.get $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 local.get $0 i32.const 10 i32.sub local.set $1 - local.get $3 + local.get $4 i32.load offset=4 local.set $0 - loop $while-continue|015 + loop $while-continue|036 local.get $1 i32.const 0 i32.ge_s @@ -13363,12 +13398,12 @@ i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|015 + br $while-continue|036 end end i32.const -1 @@ -13387,22 +13422,22 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 - local.get $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 local.get $0 i32.const 11 i32.sub local.set $1 - local.get $3 + local.get $4 i32.load offset=4 local.set $0 - loop $while-continue|019 + loop $while-continue|039 local.get $1 i32.const 0 i32.ge_s @@ -13415,12 +13450,12 @@ i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|019 + br $while-continue|039 end end i32.const -1 @@ -13438,50 +13473,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 9 call $~lib/typedarray/Uint16Array#subarray - local.tee $1 + local.tee $4 i32.store offset=8 - i32.const -1 + i32.const 0 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.027 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.027 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|028 - local.get $2 + local.set $2 + loop $while-continue|042 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.027 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|028 + 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 @@ -13493,46 +13533,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.030 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.030 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|031 - local.get $2 + local.set $2 + loop $while-continue|045 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.030 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|031 + 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 @@ -13542,46 +13585,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.033 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.033 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|034 - local.get $2 + local.set $2 + loop $while-continue|048 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.033 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|034 + 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 @@ -13593,46 +13639,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.036 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.036 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|037 - local.get $2 + local.set $2 + loop $while-continue|051 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.036 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|037 + 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 @@ -13644,46 +13693,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.039 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.039 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|040 - local.get $2 + local.set $2 + loop $while-continue|054 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.039 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|040 + 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 @@ -13695,46 +13747,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.042 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.tee $3 + i32.const 0 + local.get $3 + select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.042 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|043 - local.get $2 + local.set $2 + loop $while-continue|057 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.042 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|043 + 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 @@ -13746,11 +13801,11 @@ unreachable end i32.const 1 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.045 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -13760,36 +13815,36 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.045 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|046 - local.get $2 + local.set $2 + loop $while-continue|060 + local.get $0 local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $4 + local.get $2 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.045 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|046 + 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 @@ -13801,11 +13856,11 @@ unreachable end i32.const 2 - local.set $2 + local.set $1 i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.048 - local.get $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -13815,30 +13870,30 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.048 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 + local.get $4 i32.load offset=4 - local.set $1 - loop $while-continue|049 - local.get $2 + local.set $2 + loop $while-continue|063 + local.get $1 local.get $3 i32.lt_s if - local.get $2 + local.get $1 local.tee $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.048 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 + local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|049 + local.set $1 + br $while-continue|063 end end i32.const -1 @@ -13882,26 +13937,26 @@ unreachable end 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 0 i32.store offset=8 - local.get $3 + 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/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 + i32.gt_s if local.get $3 local.get $1 @@ -13916,8 +13971,10 @@ br $for-loop|0 end end - i32.const -1 + i32.const 0 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 local.get $3 i32.load offset=8 @@ -13930,12 +13987,12 @@ i32.load offset=4 local.set $2 loop $while-continue|0 - local.get $0 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -13943,17 +14000,17 @@ i32.load i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|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 @@ -13963,9 +14020,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/Int32Array,i32>|inlined.01 local.get $3 i32.load offset=8 @@ -13977,13 +14034,13 @@ local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|03 - local.get $0 + loop $while-continue|02 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -13992,17 +14049,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|03 + 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 @@ -14014,27 +14071,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.tee $4 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|07 - local.get $0 + loop $while-continue|05 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -14042,18 +14099,18 @@ i32.load i32.const -1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|07 + 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 @@ -14065,27 +14122,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.09 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.tee $4 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|011 - local.get $0 + loop $while-continue|08 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -14093,18 +14150,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.09 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + 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 @@ -14116,10 +14173,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 local.get $3 i32.load offset=8 i32.const 2 @@ -14130,17 +14187,17 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|015 - local.get $0 + loop $while-continue|011 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -14148,18 +14205,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|015 + 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 @@ -14171,10 +14228,10 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 local.get $3 i32.load offset=8 i32.const 2 @@ -14185,17 +14242,17 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|019 - local.get $0 + loop $while-continue|014 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -14203,18 +14260,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|019 + 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 @@ -14226,10 +14283,10 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.021 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 local.get $3 i32.load offset=8 i32.const 2 @@ -14240,17 +14297,17 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|023 - local.get $0 + loop $while-continue|017 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -14258,18 +14315,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.021 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + 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 @@ -14281,10 +14338,10 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.025 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 local.get $3 i32.load offset=8 i32.const 2 @@ -14295,17 +14352,17 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|027 - local.get $0 + loop $while-continue|020 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -14313,18 +14370,18 @@ i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.025 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|027 + 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 @@ -14337,7 +14394,7 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 local.get $3 i32.load offset=8 i32.const 2 @@ -14348,7 +14405,7 @@ i32.const 1 local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 local.get $2 i32.const 100 i32.sub @@ -14362,7 +14419,7 @@ local.get $3 i32.load offset=4 local.set $1 - loop $while-continue|031 + loop $while-continue|023 local.get $0 local.get $2 i32.lt_s @@ -14375,12 +14432,12 @@ i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|031 + br $while-continue|023 end end i32.const -1 @@ -14655,34 +14712,34 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 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 $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - 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 $3 i32.load offset=4 local.set $2 - loop $while-continue|033 - local.get $0 + loop $while-continue|024 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -14691,17 +14748,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + 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 @@ -14713,34 +14770,34 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 + local.set $0 + 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 $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 + 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 $3 i32.load offset=4 local.set $2 - loop $while-continue|037 - local.get $0 + loop $while-continue|027 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -14748,18 +14805,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|037 + 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 @@ -14771,34 +14828,34 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.039 + local.set $0 + 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 $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + 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 $3 i32.load offset=4 local.set $2 - loop $while-continue|041 - local.get $0 + loop $while-continue|030 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -14806,18 +14863,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|041 + 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 @@ -14829,34 +14886,34 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.043 + local.set $0 + 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 $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 + 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 $3 i32.load offset=4 local.set $2 - loop $while-continue|045 - local.get $0 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -14864,18 +14921,18 @@ i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|045 + 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 @@ -14888,14 +14945,14 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 local.get $1 i32.const 10 i32.sub @@ -14903,7 +14960,7 @@ local.get $3 i32.load offset=4 local.set $1 - loop $while-continue|049 + loop $while-continue|036 local.get $0 i32.const 0 i32.ge_s @@ -14916,12 +14973,12 @@ i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|049 + br $while-continue|036 end end i32.const -1 @@ -14940,14 +14997,14 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.051 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 local.get $1 i32.const 11 i32.sub @@ -14955,7 +15012,7 @@ local.get $3 i32.load offset=4 local.set $1 - loop $while-continue|053 + loop $while-continue|039 local.get $0 i32.const 0 i32.ge_s @@ -14968,12 +15025,12 @@ i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|053 + br $while-continue|039 end end i32.const -1 @@ -14998,27 +15055,27 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.055 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|057 - local.get $0 + loop $while-continue|042 + 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 $3 @@ -15026,18 +15083,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.055 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + 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 @@ -15049,27 +15106,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|061 - local.get $0 + loop $while-continue|045 + 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 $3 @@ -15077,18 +15134,18 @@ i32.load i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|061 + 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 @@ -15098,27 +15155,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.063 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|065 - local.get $0 + loop $while-continue|048 + 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 $3 @@ -15126,18 +15183,18 @@ i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.063 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|065 + 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 @@ -15149,27 +15206,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.067 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|069 - local.get $0 + loop $while-continue|051 + 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 $3 @@ -15177,18 +15234,18 @@ i32.load i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.067 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|069 + 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 @@ -15200,27 +15257,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.071 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|073 - local.get $0 + loop $while-continue|054 + 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 $3 @@ -15228,18 +15285,18 @@ i32.load i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.071 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|073 + 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 @@ -15251,27 +15308,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.075 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|077 - local.get $0 + loop $while-continue|057 + 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 $3 @@ -15279,18 +15336,18 @@ i32.load i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.075 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|077 + 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 @@ -15302,25 +15359,80 @@ unreachable end i32.const 1 + local.set $1 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $2 + i32.const 1 + i32.le_u + i32.const 1 + local.get $2 + select + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $4 + i32.load offset=4 + local.set $3 + loop $while-continue|060 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + local.tee $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + i32.load + i32.const 5 + i32.eq + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $0 + i32.const 1 + i32.add + local.set $1 + br $while-continue|060 + end + end + i32.const -1 + local.set $0 + end + local.get $0 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 632 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.079 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 - i32.const 1 + i32.const 2 i32.le_u i32.const 1 local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|081 + loop $while-continue|063 local.get $0 local.get $2 i32.lt_s @@ -15334,67 +15446,12 @@ i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|081 - end - end - i32.const -1 - local.set $1 - end - local.get $1 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 632 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.083 - local.get $4 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 2 - i32.le_u - i32.const 1 - local.get $2 - select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.083 - local.get $4 - i32.load offset=4 - local.set $3 - loop $while-continue|085 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $0 - local.tee $1 - i32.const 2 - i32.shl - local.get $3 - i32.add - i32.load - i32.const 5 - i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.083 - local.get $1 - i32.const 1 - i32.add - local.set $0 - br $while-continue|085 + br $while-continue|063 end end i32.const -1 @@ -15438,26 +15495,26 @@ unreachable end 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 0 i32.store offset=8 - local.get $3 + 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/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 + i32.gt_s if local.get $3 local.get $1 @@ -15472,8 +15529,10 @@ br $for-loop|0 end end - i32.const -1 + i32.const 0 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 local.get $3 i32.load offset=8 @@ -15486,12 +15545,12 @@ i32.load offset=4 local.set $2 loop $while-continue|0 - local.get $0 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -15499,17 +15558,17 @@ i32.load i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|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 @@ -15519,9 +15578,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/Uint32Array,u32>|inlined.01 local.get $3 i32.load offset=8 @@ -15533,13 +15592,13 @@ local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|03 - local.get $0 + loop $while-continue|02 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -15548,17 +15607,17 @@ i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|03 + 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 @@ -15570,27 +15629,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.tee $4 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|07 - local.get $0 + loop $while-continue|05 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -15598,18 +15657,18 @@ i32.load i32.const -1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|07 + 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 @@ -15621,27 +15680,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.09 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.tee $4 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|011 - local.get $0 + loop $while-continue|08 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -15649,18 +15708,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.09 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + 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 @@ -15672,10 +15731,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 local.get $3 i32.load offset=8 i32.const 2 @@ -15686,17 +15745,17 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|015 - local.get $0 + loop $while-continue|011 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -15704,18 +15763,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|015 + 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 @@ -15727,10 +15786,10 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 local.get $3 i32.load offset=8 i32.const 2 @@ -15741,17 +15800,17 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|019 - local.get $0 + loop $while-continue|014 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -15759,18 +15818,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|019 + 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 @@ -15782,10 +15841,10 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.021 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 local.get $3 i32.load offset=8 i32.const 2 @@ -15796,17 +15855,17 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|023 - local.get $0 + loop $while-continue|017 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -15814,18 +15873,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.021 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + 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 @@ -15837,10 +15896,10 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.025 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 local.get $3 i32.load offset=8 i32.const 2 @@ -15851,17 +15910,17 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 local.get $3 i32.load offset=4 local.set $2 - loop $while-continue|027 - local.get $0 + loop $while-continue|020 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -15869,18 +15928,18 @@ i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.025 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|027 + 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 @@ -15893,7 +15952,7 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 local.get $3 i32.load offset=8 i32.const 2 @@ -15904,7 +15963,7 @@ i32.const 1 local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 local.get $2 i32.const 100 i32.sub @@ -15918,7 +15977,7 @@ local.get $3 i32.load offset=4 local.set $1 - loop $while-continue|031 + loop $while-continue|023 local.get $0 local.get $2 i32.lt_s @@ -15931,12 +15990,12 @@ i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|031 + br $while-continue|023 end end i32.const -1 @@ -16211,34 +16270,34 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 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 $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - 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 $3 i32.load offset=4 local.set $2 - loop $while-continue|033 - local.get $0 + loop $while-continue|024 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -16247,17 +16306,17 @@ i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + 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 @@ -16269,34 +16328,34 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 + local.set $0 + 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 $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 + 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 $3 i32.load offset=4 local.set $2 - loop $while-continue|037 - local.get $0 + loop $while-continue|027 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -16304,18 +16363,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|037 + 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 @@ -16327,34 +16386,34 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.039 + local.set $0 + 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 $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + 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 $3 i32.load offset=4 local.set $2 - loop $while-continue|041 - local.get $0 + loop $while-continue|030 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -16362,18 +16421,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|041 + 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 @@ -16385,34 +16444,34 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.043 + local.set $0 + 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 $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 + 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 $3 i32.load offset=4 local.set $2 - loop $while-continue|045 - local.get $0 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -16420,18 +16479,18 @@ i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|045 + 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 @@ -16444,14 +16503,14 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 local.get $1 i32.const 10 i32.sub @@ -16459,7 +16518,7 @@ local.get $3 i32.load offset=4 local.set $1 - loop $while-continue|049 + loop $while-continue|036 local.get $0 i32.const 0 i32.ge_s @@ -16472,12 +16531,12 @@ i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|049 + br $while-continue|036 end end i32.const -1 @@ -16496,14 +16555,14 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.051 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 local.get $1 i32.const 11 i32.sub @@ -16511,7 +16570,7 @@ local.get $3 i32.load offset=4 local.set $1 - loop $while-continue|053 + loop $while-continue|039 local.get $0 i32.const 0 i32.ge_s @@ -16524,12 +16583,12 @@ i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|053 + br $while-continue|039 end end i32.const -1 @@ -16553,27 +16612,27 @@ local.tee $4 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.055 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|057 - local.get $0 + loop $while-continue|042 + 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 $3 @@ -16581,18 +16640,18 @@ i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.055 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + 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 @@ -16604,27 +16663,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|061 - local.get $0 + loop $while-continue|045 + 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 $3 @@ -16632,18 +16691,18 @@ i32.load i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|061 + 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 @@ -16653,27 +16712,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.063 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|065 - local.get $0 + loop $while-continue|048 + 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 $3 @@ -16681,18 +16740,18 @@ i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.063 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|065 + 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 @@ -16704,27 +16763,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.067 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|069 - local.get $0 + loop $while-continue|051 + 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 $3 @@ -16732,18 +16791,18 @@ i32.load i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.067 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|069 + 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 @@ -16755,27 +16814,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.071 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|073 - local.get $0 + loop $while-continue|054 + 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 $3 @@ -16783,18 +16842,18 @@ i32.load i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.071 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|073 + 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 @@ -16806,27 +16865,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.075 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $2 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|077 - local.get $0 + loop $while-continue|057 + 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 $3 @@ -16834,18 +16893,18 @@ i32.load i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.075 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|077 + 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 @@ -16857,10 +16916,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.079 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 local.get $4 i32.load offset=8 i32.const 2 @@ -16871,17 +16930,17 @@ i32.const 1 local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|081 - local.get $0 + loop $while-continue|060 + 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 $3 @@ -16889,18 +16948,18 @@ i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.079 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|081 + 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 @@ -16915,7 +16974,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.083 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 local.get $4 i32.load offset=8 i32.const 2 @@ -16926,11 +16985,11 @@ i32.const 1 local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 local.get $4 i32.load offset=4 local.set $3 - loop $while-continue|085 + loop $while-continue|063 local.get $0 local.get $2 i32.lt_s @@ -16944,12 +17003,12 @@ i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|085 + br $while-continue|063 end end i32.const -1 @@ -16993,28 +17052,28 @@ unreachable end 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 i32.const 7728 i32.store - local.get $2 + local.get $0 i32.const 7740 i32.load - local.tee $3 + local.tee $0 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $4 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 - i32.lt_s + i32.gt_s if - local.get $2 + local.get $4 local.get $1 i32.const 7728 local.get $1 @@ -17028,44 +17087,46 @@ br $for-loop|0 end end - i32.const -1 + i32.const 0 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 - 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 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|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 @@ -17075,46 +17136,46 @@ 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/Int64Array,i64>|inlined.01 - local.get $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|03 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|02 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|03 + 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 @@ -17126,46 +17187,46 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|07 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|05 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const -1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|07 + 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 @@ -17177,46 +17238,46 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.09 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.09 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|011 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|08 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.09 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + 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 @@ -17228,50 +17289,50 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|015 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|011 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|015 + 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 @@ -17283,50 +17344,50 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|019 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|014 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|019 + 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 @@ -17338,50 +17399,50 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.021 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.021 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|023 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|017 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.021 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + 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 @@ -17393,50 +17454,50 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.025 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.025 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|027 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|020 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.025 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|027 + 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 @@ -17449,19 +17510,19 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -17471,12 +17532,12 @@ i32.gt_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|031 + loop $while-continue|023 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -17487,12 +17548,12 @@ i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|031 + br $while-continue|023 end end i32.const -1 @@ -17511,39 +17572,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 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 $3 + local.get $1 + local.get $1 local.get $2 - local.get $3 - i32.le_s + i32.ge_s select - local.get $3 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|00 @@ -17552,6 +17609,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -17559,7 +17617,7 @@ i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -17567,9 +17625,9 @@ 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 @@ -17580,35 +17638,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|06 @@ -17617,6 +17675,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -17625,7 +17684,7 @@ i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -17633,9 +17692,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -17648,35 +17707,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|012 @@ -17685,6 +17744,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -17693,7 +17753,7 @@ i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -17701,9 +17761,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -17716,35 +17776,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|018 @@ -17753,6 +17813,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -17761,7 +17822,7 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -17769,9 +17830,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -17783,54 +17844,53 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $0 - local.tee $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $0 + local.set $2 + loop $while-continue|024 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + 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 @@ -17842,53 +17902,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $0 + local.set $2 + loop $while-continue|027 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|037 + 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 @@ -17900,53 +17960,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.039 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $0 + local.set $2 + loop $while-continue|030 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|041 + 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 @@ -17958,53 +18018,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.043 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $0 + local.set $2 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|045 + 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 @@ -18017,22 +18077,22 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 local.get $1 i32.const 10 i32.sub local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|049 + loop $while-continue|036 local.get $0 i32.const 0 i32.ge_s @@ -18045,12 +18105,12 @@ i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|049 + br $while-continue|036 end end i32.const -1 @@ -18069,22 +18129,22 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.051 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 local.get $1 i32.const 11 i32.sub local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|053 + loop $while-continue|039 local.get $0 i32.const 0 i32.ge_s @@ -18097,12 +18157,12 @@ i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|053 + br $while-continue|039 end end i32.const -1 @@ -18120,33 +18180,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9 call $~lib/typedarray/Int64Array#subarray local.tee $4 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.055 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|057 - local.get $0 + loop $while-continue|042 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -18154,18 +18214,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.055 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + 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 @@ -18177,27 +18237,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|061 - local.get $0 + loop $while-continue|045 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -18205,18 +18265,18 @@ i64.load i64.const 4 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|061 + 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 @@ -18226,27 +18286,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.063 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|065 - local.get $0 + loop $while-continue|048 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -18254,18 +18314,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.063 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|065 + 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 @@ -18277,27 +18337,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.067 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|069 - local.get $0 + loop $while-continue|051 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -18305,18 +18365,18 @@ i64.load i64.const 9 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.067 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|069 + 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 @@ -18328,27 +18388,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.071 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|073 - local.get $0 + loop $while-continue|054 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -18356,18 +18416,18 @@ i64.load i64.const 10 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.071 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|073 + 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 @@ -18379,27 +18439,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.075 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|077 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -18407,18 +18467,18 @@ i64.load i64.const 11 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.075 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|077 + 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 @@ -18430,10 +18490,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.079 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 local.get $4 i32.load offset=8 i32.const 3 @@ -18444,17 +18504,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|081 - local.get $0 + loop $while-continue|060 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -18462,18 +18522,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.079 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|081 + 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 @@ -18488,7 +18548,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.083 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 local.get $4 i32.load offset=8 i32.const 3 @@ -18499,11 +18559,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|085 + loop $while-continue|063 local.get $0 local.get $3 i32.lt_s @@ -18517,12 +18577,12 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|085 + br $while-continue|063 end end i32.const -1 @@ -18566,28 +18626,28 @@ unreachable end 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 i32.const 7728 i32.store - local.get $2 + local.get $0 i32.const 7740 i32.load - local.tee $3 + local.tee $0 call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + local.tee $4 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 - i32.lt_s + i32.gt_s if - local.get $2 + local.get $4 local.get $1 i32.const 7728 local.get $1 @@ -18601,44 +18661,46 @@ br $for-loop|0 end end - i32.const -1 + i32.const 0 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 - 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 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|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 @@ -18648,46 +18710,46 @@ 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/Uint64Array,u64>|inlined.01 - local.get $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|03 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|02 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|03 + 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 @@ -18699,46 +18761,46 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|07 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|05 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const -1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|07 + 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 @@ -18750,46 +18812,46 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.09 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.09 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|011 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|08 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.09 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + 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 @@ -18801,50 +18863,50 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|015 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|011 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|015 + 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 @@ -18856,50 +18918,50 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|019 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|014 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|019 + 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 @@ -18911,50 +18973,50 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.021 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.021 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|023 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|017 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.021 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + 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 @@ -18966,50 +19028,50 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.025 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.025 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|027 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|020 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.025 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|027 + 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 @@ -19022,19 +19084,19 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -19044,12 +19106,12 @@ i32.gt_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|031 + loop $while-continue|023 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -19060,12 +19122,12 @@ i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|031 + br $while-continue|023 end end i32.const -1 @@ -19084,39 +19146,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 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 $3 + local.get $1 + local.get $1 local.get $2 - local.get $3 - i32.le_s + i32.ge_s select - local.get $3 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|00 @@ -19125,6 +19183,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19132,7 +19191,7 @@ i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -19140,9 +19199,9 @@ 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 @@ -19153,35 +19212,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|06 @@ -19190,6 +19249,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19198,7 +19258,7 @@ i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -19206,9 +19266,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19221,35 +19281,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|012 @@ -19258,6 +19318,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19266,7 +19327,7 @@ i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -19274,9 +19335,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19289,35 +19350,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|018 @@ -19326,6 +19387,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19334,7 +19396,7 @@ i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -19342,9 +19404,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -19356,54 +19418,53 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $0 - local.tee $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $0 + local.set $2 + loop $while-continue|024 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + 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 @@ -19415,53 +19476,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $0 + local.set $2 + loop $while-continue|027 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|037 + 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 @@ -19473,53 +19534,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.039 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $0 + local.set $2 + loop $while-continue|030 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|041 + 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 @@ -19531,53 +19592,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.043 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $0 + local.set $2 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|045 + 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 @@ -19590,22 +19651,22 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 local.get $1 i32.const 10 i32.sub local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|049 + loop $while-continue|036 local.get $0 i32.const 0 i32.ge_s @@ -19618,12 +19679,12 @@ i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|049 + br $while-continue|036 end end i32.const -1 @@ -19642,22 +19703,22 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.051 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 local.get $1 i32.const 11 i32.sub local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|053 + loop $while-continue|039 local.get $0 i32.const 0 i32.ge_s @@ -19670,12 +19731,12 @@ i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|053 + br $while-continue|039 end end i32.const -1 @@ -19693,33 +19754,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9 call $~lib/typedarray/Uint64Array#subarray local.tee $4 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.055 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|057 - local.get $0 + loop $while-continue|042 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19727,18 +19788,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.055 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + 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 @@ -19750,27 +19811,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|061 - local.get $0 + loop $while-continue|045 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19778,18 +19839,18 @@ i64.load i64.const 4 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|061 + 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 @@ -19799,27 +19860,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.063 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|065 - local.get $0 + loop $while-continue|048 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19827,18 +19888,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.063 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|065 + 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 @@ -19850,27 +19911,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.067 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|069 - local.get $0 + loop $while-continue|051 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19878,18 +19939,18 @@ i64.load i64.const 9 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.067 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|069 + 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 @@ -19901,27 +19962,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.071 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|073 - local.get $0 + loop $while-continue|054 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19929,18 +19990,18 @@ i64.load i64.const 10 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.071 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|073 + 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 @@ -19952,27 +20013,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.075 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|077 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19980,18 +20041,18 @@ i64.load i64.const 11 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.075 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|077 + 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 @@ -20003,10 +20064,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.079 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 local.get $4 i32.load offset=8 i32.const 3 @@ -20017,17 +20078,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|081 - local.get $0 + loop $while-continue|060 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -20035,18 +20096,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.079 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|081 + 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 @@ -20061,7 +20122,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.083 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 local.get $4 i32.load offset=8 i32.const 3 @@ -20072,11 +20133,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|085 + loop $while-continue|063 local.get $0 local.get $3 i32.lt_s @@ -20090,12 +20151,12 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|085 + br $while-continue|063 end end i32.const -1 @@ -20139,28 +20200,28 @@ unreachable end 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 i32.const 7728 i32.store - local.get $2 + local.get $0 i32.const 7740 i32.load - local.tee $3 + local.tee $0 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $4 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 - i32.lt_s + i32.gt_s if - local.get $2 + local.get $4 local.get $1 i32.const 7728 local.get $1 @@ -20174,45 +20235,47 @@ br $for-loop|0 end end - i32.const -1 + i32.const 0 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 - 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 $3 + local.get $2 i32.add f32.load f32.const 0 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|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 @@ -20222,46 +20285,46 @@ 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/Float32Array,f32>|inlined.01 - local.get $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|03 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|02 + 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 $3 + local.get $2 i32.add f32.load f32.const 11 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|03 + 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 @@ -20273,46 +20336,46 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|07 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|05 + 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 $3 + local.get $2 i32.add f32.load f32.const -1 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|07 + 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 @@ -20324,46 +20387,46 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.09 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.09 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|011 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|08 + 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 $3 + local.get $2 i32.add f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.09 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + 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 @@ -20375,50 +20438,50 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|015 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|011 + 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 $3 + local.get $2 i32.add f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|015 + 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 @@ -20430,50 +20493,50 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|019 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|014 + 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 $3 + local.get $2 i32.add f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|019 + 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 @@ -20485,50 +20548,50 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.021 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.021 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|023 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|017 + 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 $3 + local.get $2 i32.add f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.021 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + 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 @@ -20540,50 +20603,50 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.025 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.025 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|027 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|020 + 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 $3 + local.get $2 i32.add f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.025 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|027 + 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 @@ -20596,19 +20659,19 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -20618,12 +20681,12 @@ i32.gt_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|031 + loop $while-continue|023 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -20634,12 +20697,12 @@ f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|031 + br $while-continue|023 end end i32.const -1 @@ -20658,39 +20721,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 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 $3 + local.get $1 + local.get $1 local.get $2 - local.get $3 - i32.le_s + i32.ge_s select - local.get $3 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|00 @@ -20699,6 +20758,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -20707,7 +20767,7 @@ f32.const 0 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -20715,9 +20775,9 @@ 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 @@ -20728,35 +20788,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|06 @@ -20765,6 +20825,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -20773,7 +20834,7 @@ f32.const 11 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -20781,9 +20842,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20796,35 +20857,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|012 @@ -20833,6 +20894,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -20841,7 +20903,7 @@ f32.const -1 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -20849,9 +20911,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20864,35 +20926,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|018 @@ -20901,6 +20963,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -20909,7 +20972,7 @@ f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -20917,9 +20980,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -20931,54 +20994,53 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $0 - local.tee $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $0 + local.set $2 + loop $while-continue|024 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + 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 @@ -20990,53 +21052,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $0 + local.set $2 + loop $while-continue|027 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|037 + 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 @@ -21048,53 +21110,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.039 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $0 + local.set $2 + loop $while-continue|030 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|041 + 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 @@ -21106,53 +21168,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.043 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $0 + local.set $2 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|045 + 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 @@ -21165,22 +21227,22 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 local.get $1 i32.const 10 i32.sub local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|049 + loop $while-continue|036 local.get $0 i32.const 0 i32.ge_s @@ -21193,12 +21255,12 @@ f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|049 + br $while-continue|036 end end i32.const -1 @@ -21217,22 +21279,22 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.051 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 local.get $1 i32.const 11 i32.sub local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|053 + loop $while-continue|039 local.get $0 i32.const 0 i32.ge_s @@ -21245,12 +21307,12 @@ f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|053 + br $while-continue|039 end end i32.const -1 @@ -21268,33 +21330,33 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9 call $~lib/typedarray/Float32Array#subarray local.tee $4 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.055 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|057 - local.get $0 + loop $while-continue|042 + 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 @@ -21302,18 +21364,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.055 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + 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 @@ -21325,27 +21387,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|061 - local.get $0 + loop $while-continue|045 + 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 @@ -21353,18 +21415,18 @@ f32.load f32.const 4 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|061 + 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 @@ -21374,27 +21436,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.063 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|065 - local.get $0 + loop $while-continue|048 + 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 @@ -21402,18 +21464,18 @@ f32.load f32.const 5 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.063 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|065 + 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 @@ -21425,27 +21487,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.067 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|069 - local.get $0 + loop $while-continue|051 + 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 @@ -21453,18 +21515,18 @@ f32.load f32.const 9 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.067 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|069 + 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 @@ -21476,27 +21538,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.071 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|073 - local.get $0 + loop $while-continue|054 + 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 @@ -21504,18 +21566,18 @@ f32.load f32.const 10 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.071 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|073 + 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 @@ -21527,27 +21589,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.075 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|077 - local.get $0 + loop $while-continue|057 + 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 @@ -21555,18 +21617,18 @@ f32.load f32.const 11 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.075 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|077 + 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 @@ -21578,10 +21640,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.079 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 local.get $4 i32.load offset=8 i32.const 2 @@ -21592,17 +21654,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|081 - local.get $0 + loop $while-continue|060 + 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 @@ -21610,18 +21672,18 @@ f32.load f32.const 5 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.079 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|081 + 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 @@ -21636,7 +21698,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.083 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 local.get $4 i32.load offset=8 i32.const 2 @@ -21647,11 +21709,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|085 + loop $while-continue|063 local.get $0 local.get $3 i32.lt_s @@ -21665,12 +21727,12 @@ f32.load f32.const 5 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|085 + br $while-continue|063 end end i32.const -1 @@ -21714,28 +21776,28 @@ unreachable end 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 i32.const 7728 i32.store - local.get $2 + local.get $0 i32.const 7740 i32.load - local.tee $3 + local.tee $0 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $4 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 - i32.lt_s + i32.gt_s if - local.get $2 + local.get $4 local.get $1 i32.const 7728 local.get $1 @@ -21749,45 +21811,47 @@ br $for-loop|0 end end - i32.const -1 + i32.const 0 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 - 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 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 0 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|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 @@ -21797,46 +21861,46 @@ 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/Float64Array,f64>|inlined.01 - local.get $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $2 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|03 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|02 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 11 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|03 + 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 @@ -21848,46 +21912,46 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|07 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|05 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const -1 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|07 + 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 @@ -21899,46 +21963,46 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.09 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.09 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|011 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|08 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.09 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + 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 @@ -21950,50 +22014,50 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|015 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|011 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|015 + 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 @@ -22005,50 +22069,50 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|019 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|014 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|019 + 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 @@ -22060,50 +22124,50 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.021 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.021 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|023 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|017 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.021 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + 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 @@ -22115,50 +22179,50 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.025 - local.get $2 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.025 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|027 - local.get $0 - local.get $4 + local.set $2 + loop $while-continue|020 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.025 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|027 + 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 @@ -22171,19 +22235,19 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $2 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -22193,12 +22257,12 @@ i32.gt_s select local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|031 + loop $while-continue|023 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -22209,12 +22273,12 @@ f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|031 + br $while-continue|023 end end i32.const -1 @@ -22233,39 +22297,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 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 $3 + local.get $1 + local.get $1 local.get $2 - local.get $3 - i32.le_s + i32.ge_s select - local.get $3 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|00 @@ -22274,6 +22334,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22282,7 +22343,7 @@ f64.const 0 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -22290,9 +22351,9 @@ 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 @@ -22303,35 +22364,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|06 @@ -22340,6 +22401,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22348,7 +22410,7 @@ f64.const 11 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -22356,9 +22418,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22371,35 +22433,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|012 @@ -22408,6 +22470,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22416,7 +22479,7 @@ f64.const -1 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -22424,9 +22487,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22439,35 +22502,35 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $3 + local.get $2 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 $3 + local.get $2 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 $2 + local.get $1 i32.const 0 i32.lt_s select local.set $1 - local.get $0 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|018 @@ -22476,6 +22539,7 @@ i32.ge_s if local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22484,7 +22548,7 @@ f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $1 @@ -22492,9 +22556,9 @@ end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -22506,54 +22570,53 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $0 - local.tee $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $0 + local.set $2 + loop $while-continue|024 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + 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 @@ -22565,53 +22628,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $0 + local.set $2 + loop $while-continue|027 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|037 + 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 @@ -22623,53 +22686,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.039 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $0 + local.set $2 + loop $while-continue|030 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|041 + 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 @@ -22681,53 +22744,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.043 - local.get $2 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 + 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.get $2 + local.set $1 + local.get $4 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $0 + local.set $2 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|045 + 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 @@ -22740,22 +22803,22 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 local.get $1 i32.const 10 i32.sub local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|049 + loop $while-continue|036 local.get $0 i32.const 0 i32.ge_s @@ -22768,12 +22831,12 @@ f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|049 + br $while-continue|036 end end i32.const -1 @@ -22792,22 +22855,22 @@ end i32.const -1 local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.051 - local.get $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 local.get $1 i32.const 11 i32.sub local.set $0 - local.get $2 + local.get $4 i32.load offset=4 local.set $1 - loop $while-continue|053 + loop $while-continue|039 local.get $0 i32.const 0 i32.ge_s @@ -22820,12 +22883,12 @@ f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|053 + br $while-continue|039 end end i32.const -1 @@ -22843,34 +22906,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 4 i32.const 9 call $~lib/typedarray/Float64Array#subarray local.tee $4 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.055 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|057 - local.get $0 + loop $while-continue|042 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22878,18 +22941,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.055 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + 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 @@ -22901,27 +22964,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|061 - local.get $0 + loop $while-continue|045 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22929,18 +22992,18 @@ f64.load f64.const 4 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|061 + 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 @@ -22950,27 +23013,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.063 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|065 - local.get $0 + loop $while-continue|048 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -22978,18 +23041,18 @@ f64.load f64.const 5 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.063 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|065 + 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 @@ -23001,27 +23064,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.067 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|069 - local.get $0 + loop $while-continue|051 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -23029,18 +23092,18 @@ f64.load f64.const 9 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.067 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|069 + 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 @@ -23052,27 +23115,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.071 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|073 - local.get $0 + loop $while-continue|054 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -23080,18 +23143,18 @@ f64.load f64.const 10 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.071 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|073 + 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 @@ -23103,27 +23166,27 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.075 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.tee $3 i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|077 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -23131,18 +23194,18 @@ f64.load f64.const 11 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.075 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|077 + 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 @@ -23154,10 +23217,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.079 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 local.get $4 i32.load offset=8 i32.const 3 @@ -23168,17 +23231,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|081 - local.get $0 + loop $while-continue|060 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -23186,18 +23249,18 @@ f64.load f64.const 5 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.079 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|081 + 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 @@ -23212,7 +23275,7 @@ local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.083 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 local.get $4 i32.load offset=8 i32.const 3 @@ -23223,11 +23286,11 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|085 + loop $while-continue|063 local.get $0 local.get $3 i32.lt_s @@ -23241,12 +23304,12 @@ f64.load f64.const 5 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 local.get $1 i32.const 1 i32.add local.set $0 - br $while-continue|085 + br $while-continue|063 end end i32.const -1 @@ -23374,7 +23437,6 @@ ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) local.get $1 i32.extend8_s i32.const 0 @@ -23409,50 +23471,51 @@ i32.add return end + local.get $0 local.get $1 i32.extend8_s - local.tee $3 - local.tee $1 + local.tee $0 + local.get $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 @@ -23460,12 +23523,9 @@ end local.get $2 i32.add - local.set $1 - local.get $0 - local.get $3 - local.get $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/typedarray/Int8Array#join (param $0 i32) (result i32) (local $1 i32) @@ -23474,32 +23534,32 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + local.set $0 + 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 + if + i32.const 33040 + i32.const 33088 + 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/string/joinIntegerArray local.get $0 - i32.load offset=8 - i32.const 0 - local.set $0 - 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 - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub local.tee $6 @@ -23511,119 +23571,121 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 local.get $6 - i32.eqz + i32.lt_s if - local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + local.get $5 + i32.add i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 11 - i32.add - i32.mul - i32.const 11 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - loop $for-loop|0 + call $~lib/util/number/itoa_buffered local.get $1 - local.get $6 - i32.lt_s + i32.add + local.set $1 + local.get $4 if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $5 - i32.add - local.get $1 - local.get $4 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.set $0 - local.get $2 - if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - i32.const 9584 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $2 - i32.add - local.set $0 - end - local.get $1 + i32.const 9584 + local.get $4 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 i32.add local.set $1 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $4 - local.get $6 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray end 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/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -23658,47 +23720,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -23709,17 +23771,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -23732,11 +23793,12 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 i32.const 255 i32.and @@ -23753,62 +23815,60 @@ i32.const 1 return end + local.get $0 local.get $1 i32.const 255 i32.and - local.tee $1 - local.tee $2 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $2 - local.get $0 - local.get $1 - local.get $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $0 ) (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result i32) (local $1 i32) @@ -23817,32 +23877,32 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + local.set $0 + 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 + if + i32.const 33040 + i32.const 33088 + 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/string/joinIntegerArray local.get $0 - i32.load offset=8 - i32.const 0 - local.set $0 - 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 - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub local.tee $6 @@ -23854,118 +23914,118 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 local.get $6 - i32.eqz + i32.lt_s if - local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + local.get $5 + i32.add i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - loop $for-loop|0 + call $~lib/util/number/itoa_buffered local.get $1 - local.get $6 - i32.lt_s + i32.add + local.set $1 + local.get $4 if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $5 - i32.add - local.get $1 - local.get $4 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.set $0 - local.get $2 - if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - i32.const 9584 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $2 - i32.add - local.set $0 - end - local.get $1 + i32.const 9584 + local.get $4 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 i32.add local.set $1 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 + end + local.get $2 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $4 - local.get $6 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray end 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/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) local.get $1 i32.extend16_s i32.const 0 @@ -24000,50 +24060,51 @@ i32.add return end + local.get $0 local.get $1 i32.extend16_s - local.tee $3 - local.tee $1 + local.tee $0 + local.get $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 @@ -24051,12 +24112,9 @@ end local.get $2 i32.add - local.set $1 - local.get $0 - local.get $3 - local.get $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) (local $1 i32) @@ -24065,34 +24123,34 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=8 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $0 + 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 + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.shr_u - i32.const 0 - local.set $0 - 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 - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + 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/string/joinIntegerArray + local.get $0 i32.const 1 i32.sub local.tee $6 @@ -24104,121 +24162,121 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 local.get $6 - i32.eqz + i32.lt_s if - local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 1 + i32.shl + local.get $5 + i32.add i32.load16_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 11 - i32.add - i32.mul - i32.const 11 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - loop $for-loop|0 + call $~lib/util/number/itoa_buffered local.get $1 - local.get $6 - i32.lt_s + i32.add + local.set $1 + local.get $4 if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add local.get $1 i32.const 1 i32.shl - local.get $4 - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.set $0 - local.get $2 - if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - i32.const 9584 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $2 - i32.add - local.set $0 - end - local.get $1 + i32.const 9584 + local.get $4 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 i32.add local.set $1 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $6 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 1 + i32.shl + local.get $5 + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray end 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/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 i32.const 65535 i32.and @@ -24235,62 +24293,60 @@ i32.const 1 return end + local.get $0 local.get $1 i32.const 65535 i32.and - local.tee $1 - local.tee $2 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $2 - local.get $0 - local.get $1 - local.get $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $0 ) (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result i32) (local $1 i32) @@ -24299,34 +24355,34 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=8 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $0 + 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 + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.shr_u - i32.const 0 - local.set $0 - 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 - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + 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/string/joinIntegerArray + local.get $0 i32.const 1 i32.sub local.tee $6 @@ -24338,118 +24394,119 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 local.get $6 - i32.eqz + i32.lt_s if - local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 1 + i32.shl + local.get $5 + i32.add i32.load16_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - loop $for-loop|0 + call $~lib/util/number/itoa_buffered local.get $1 - local.get $6 - i32.lt_s + i32.add + local.set $1 + local.get $4 if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add local.get $1 i32.const 1 i32.shl - local.get $4 - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.set $0 - local.get $2 - if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - i32.const 9584 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $2 - i32.add - local.set $0 - end - local.get $1 + i32.const 9584 + local.get $4 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 i32.add local.set $1 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $6 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 1 + i32.shl + local.get $5 + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray end 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/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -24545,34 +24602,34 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + 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 + if + i32.const 33040 + i32.const 33088 + 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/string/joinIntegerArray local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 0 - local.set $0 - 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 - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub local.tee $6 @@ -24584,118 +24641,119 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 local.get $6 - i32.eqz + i32.lt_s if - local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 2 + i32.shl + local.get $5 + i32.add i32.load - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 11 - i32.add - i32.mul - i32.const 11 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - loop $for-loop|0 + call $~lib/util/number/itoa_buffered local.get $1 - local.get $6 - i32.lt_s + i32.add + local.set $1 + local.get $4 if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add local.get $1 - i32.const 2 + i32.const 1 i32.shl - local.get $4 - i32.add - i32.load - call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.set $0 - local.get $2 - if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - i32.const 9584 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $2 - i32.add - local.set $0 - end - local.get $1 + i32.const 9584 + local.get $4 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 i32.add local.set $1 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $6 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $5 + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray end 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/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -24769,34 +24827,34 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + 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 + if + i32.const 33040 + i32.const 33088 + 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/string/joinIntegerArray local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 0 - local.set $0 - 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 - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub local.tee $6 @@ -24808,118 +24866,119 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 local.get $6 - i32.eqz + i32.lt_s if - local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 2 + i32.shl + local.get $5 + i32.add i32.load - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - loop $for-loop|0 + call $~lib/util/number/itoa_buffered local.get $1 - local.get $6 - i32.lt_s + i32.add + local.set $1 + local.get $4 if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add local.get $1 - i32.const 2 + i32.const 1 i32.shl - local.get $4 - i32.add - i32.load - call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.set $0 - local.get $2 - if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - i32.const 9584 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $2 - i32.add - local.set $0 - end - local.get $1 + i32.const 9584 + local.get $4 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 i32.add local.set $1 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $6 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $5 + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray end 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/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -25012,11 +25071,10 @@ (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) local.get $1 i64.const 0 i64.lt_s - local.tee $2 + local.tee $3 if local.get $0 i32.const 45 @@ -25030,7 +25088,7 @@ i64.const 10 i64.lt_u if - local.get $2 + local.get $3 i32.const 1 i32.shl local.get $0 @@ -25039,7 +25097,7 @@ i64.const 48 i64.or i64.store16 - local.get $2 + local.get $3 i32.const 1 i32.add return @@ -25050,59 +25108,58 @@ if local.get $1 i32.wrap_i64 - local.tee $3 - local.tee $4 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $4 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $4 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $4 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $4 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $4 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $4 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $4 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $4 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.get $2 + local.get $3 i32.add - 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 @@ -25157,12 +25214,12 @@ i32.add end end - local.get $2 + local.get $3 i32.add - local.tee $2 + local.tee $3 call $~lib/util/number/utoa64_dec_lut end - local.get $2 + local.get $3 ) (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) (local $1 i32) @@ -25172,33 +25229,31 @@ (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + 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-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer 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 $7 + local.tee $6 i32.const 0 i32.lt_s if @@ -25210,11 +25265,11 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0 - local.get $7 - i32.eqz - if - local.get $4 + local.get $6 + i32.eqz + if + block $__inlined_func$~lib/util/number/itoa64 (result i32) + local.get $5 i64.load i64.extend32_s local.set $2 @@ -25225,271 +25280,271 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/number/itoa64 - local.get $2 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - local.set $0 - br $__inlined_func$~lib/util/number/itoa64 - end - i64.const 0 - local.get $2 - i64.sub - local.get $2 + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $2 + i64.sub + local.get $2 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $1 + select + local.tee $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer local.get $2 - i64.const 63 - i64.shr_u i32.wrap_i64 - local.tee $1 - select - local.tee $2 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.wrap_i64 - local.tee $3 - local.tee $0 - i32.const 100000 + local.tee $3 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 i32.lt_u if (result i32) local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end + i32.const 10 + i32.ge_u + i32.const 1 + i32.add else local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add end - local.get $1 - i32.add - local.tee $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - 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 $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + 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 + i64.const 1000000000000000 + i64.lt_u + if (result i32) local.get $2 - i64.const 1000000000000000 + i64.const 1000000000000 i64.lt_u if (result i32) local.get $2 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $2 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $2 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $2 - i64.const 10000000000000 - i64.ge_u - i32.add - end + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add else local.get $2 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $2 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $2 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add end - local.get $1 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 + else local.get $2 - local.get $3 - call $~lib/util/number/utoa64_dec_lut + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end end local.get $1 - if - local.get $0 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer + local.tee $3 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $3 + call $~lib/util/number/utoa64_dec_lut + end + local.get $1 + if + local.get $0 + i32.const 45 + i32.store16 end - br $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 end + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 21 - i32.add - i32.mul - i32.const 21 + i32.const 4 i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add local.get $3 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 local.get $7 - i32.lt_s if - local.get $0 - i32.const 1 - i32.shl local.get $1 - i32.add - local.get $3 - i32.const 3 + i32.const 1 i32.shl - local.get $4 - i32.add - i64.load - call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.set $0 - local.get $5 - if - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 9584 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $5 - i32.add - local.set $0 - end - local.get $3 + i32.const 9584 + local.get $7 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $7 i32.add - local.set $3 - br $for-loop|0 + local.set $1 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $6 + end + local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if local.get $0 - i32.const 1 - i32.shl local.get $1 - i32.add - local.get $7 - i32.const 3 - i32.shl - local.get $4 - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -25640,35 +25695,37 @@ ) (func $~lib/typedarray/Uint64Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - block $folding-inner1 - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 + (local $7 i64) + block $folding-inner0 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + 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-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - 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-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -25677,275 +25734,276 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0 - local.get $7 - i32.eqz - if - block $__inlined_func$~lib/util/number/utoa64 (result i32) - local.get $4 - i64.load - local.set $2 + local.get $3 + i32.eqz + if + block $__inlined_func$~lib/util/number/utoa64 (result i32) + local.get $2 + i64.load + local.set $7 + 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-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $7 + i64.eqz + if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + i32.const 8000 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $7 + i64.const 4294967295 + i64.le_u + if global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - br $__inlined_func$~lib/util/number/utoa64 - end - local.get $2 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.wrap_i64 - local.tee $0 - local.tee $1 - i32.const 100000 + local.get $7 + i32.wrap_i64 + local.tee $2 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 i32.lt_u if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add end - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 + else local.get $0 - local.get $1 - call $~lib/util/number/utoa32_dec_lut + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $2 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $7 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $7 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $7 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $7 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $7 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $7 + i64.const 10000000000000 + i64.ge_u + i32.add + end else - global.get $~lib/memory/__stack_pointer - local.get $2 - i64.const 1000000000000000 + local.get $7 + i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $2 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $2 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $2 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $2 - i64.const 10000000000000 - i64.ge_u - i32.add - end + local.get $7 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add else - local.get $2 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $2 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $2 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end + local.get $7 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $7 + i64.const 1000000000000000000 + i64.ge_u + i32.add end - local.tee $0 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $2 - local.get $0 - 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 $3 + local.tee $0 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $7 + local.get $0 + call $~lib/util/number/utoa64_dec_lut end - local.set $0 - br $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 end + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 20 - i32.add - i32.mul - i32.const 20 + i32.const 4 i32.add - local.tee $5 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - loop $for-loop|0 - local.get $3 - local.get $7 - i32.lt_s + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $6 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 + local.get $5 + i32.gt_s + if + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $5 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $6 if local.get $1 i32.const 1 i32.shl - local.get $6 + local.get $0 i32.add - local.get $3 - i32.const 3 + i32.const 9584 + local.get $6 + i32.const 1 i32.shl - local.get $4 - i32.add - i64.load - call $~lib/util/number/itoa_buffered + call $~lib/memory/memory.copy local.get $1 + local.get $6 i32.add local.set $1 - local.get $0 - if - local.get $1 - i32.const 1 - i32.shl - local.get $6 - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 end - local.get $5 - local.get $1 - i32.const 1 - i32.shl - local.get $6 - i32.add - local.get $7 - i32.const 3 - i32.shl - local.get $4 - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - local.get $6 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + end + local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $2 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end + local.get $0 return end i32.const 33040 @@ -25988,47 +26046,46 @@ i64.shr_u i32.wrap_i64 local.tee $3 - local.tee $6 i32.const 100000 i32.lt_u if (result i32) - local.get $6 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $6 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $6 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $6 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $6 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $6 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $6 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $6 + local.get $3 i32.const 100000000 i32.ge_u i32.add @@ -26215,7 +26272,7 @@ i32.add local.tee $0 i32.load16_u - local.set $6 + local.set $9 loop $while-continue|3 local.get $1 local.get $12 @@ -26245,10 +26302,10 @@ i32.const 0 end if - local.get $6 + local.get $9 i32.const 1 i32.sub - local.set $6 + local.set $9 local.get $1 local.get $2 i64.add @@ -26257,7 +26314,7 @@ end end local.get $0 - local.get $6 + local.get $9 i32.store16 local.get $5 return @@ -26339,7 +26396,7 @@ i32.add local.tee $0 i32.load16_u - local.set $6 + local.set $9 loop $while-continue|6 local.get $1 local.get $2 @@ -26369,10 +26426,10 @@ i32.const 0 end if - local.get $6 + local.get $9 i32.const 1 i32.sub - local.set $6 + local.set $9 local.get $1 local.get $13 i64.add @@ -26381,7 +26438,7 @@ end end local.get $0 - local.get $6 + local.get $9 i32.store16 local.get $5 end @@ -27071,34 +27128,34 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinFloatArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + 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 + if + i32.const 33040 + i32.const 33088 + 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/string/joinFloatArray local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 0 - local.set $0 - 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 - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub local.tee $6 @@ -27110,121 +27167,122 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinFloatArray + end + local.get $6 + i32.eqz + if + local.get $5 + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinFloatArray end - block $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 local.get $6 - i32.eqz + i32.lt_s if - local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 2 + i32.shl + local.get $5 + i32.add f32.load f64.promote_f32 - call $~lib/util/number/dtoa - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 28 - i32.add - i32.mul - i32.const 28 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - loop $for-loop|0 + call $~lib/util/number/dtoa_buffered local.get $1 - local.get $6 - i32.lt_s + i32.add + local.set $1 + local.get $4 if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add local.get $1 - i32.const 2 + i32.const 1 i32.shl - local.get $4 - i32.add - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_buffered local.get $0 i32.add - local.set $0 - local.get $2 - if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - i32.const 9584 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $2 - i32.add - local.set $0 - end - local.get $1 + i32.const 9584 + local.get $4 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 i32.add local.set $1 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $6 - i32.const 2 - i32.shl - local.get $4 - i32.add - f32.load - f64.promote_f32 - call $~lib/util/number/dtoa_buffered + end + local.get $2 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 2 + i32.shl + local.get $5 + i32.add + f32.load + f64.promote_f32 + call $~lib/util/number/dtoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 br $__inlined_func$~lib/util/string/joinFloatArray end 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/typedarray/Float64Array#join (param $0 i32) (result i32) (local $1 i32) @@ -27233,34 +27291,34 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinFloatArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + 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 + if + i32.const 33040 + i32.const 33088 + 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/string/joinFloatArray local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 0 - local.set $0 - 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 - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub local.tee $6 @@ -27272,118 +27330,119 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end - block $folding-inner0 + local.get $6 + i32.eqz + if + local.get $5 + f64.load + call $~lib/util/number/dtoa + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinFloatArray + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 local.get $6 - i32.eqz + i32.lt_s if - local.get $4 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $5 + i32.add f64.load - call $~lib/util/number/dtoa - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 28 - i32.add - i32.mul - i32.const 28 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - loop $for-loop|0 + call $~lib/util/number/dtoa_buffered local.get $1 - local.get $6 - i32.lt_s + i32.add + local.set $1 + local.get $4 if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add local.get $1 - i32.const 3 + i32.const 1 i32.shl - local.get $4 - i32.add - f64.load - call $~lib/util/number/dtoa_buffered local.get $0 i32.add - local.set $0 - local.get $2 - if - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - i32.const 9584 - local.get $2 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $2 - i32.add - local.set $0 - end - local.get $1 + i32.const 9584 + local.get $4 i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $1 + local.get $4 i32.add local.set $1 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $0 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $6 - i32.const 3 - i32.shl - local.get $4 - i32.add - f64.load - call $~lib/util/number/dtoa_buffered + end + local.get $2 + local.get $1 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $5 + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 br $__inlined_func$~lib/util/string/joinFloatArray end 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/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -27728,11 +27787,11 @@ end local.get $0 i32.load offset=8 + local.get $2 local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.get $2 i32.add i32.lt_s if @@ -27812,11 +27871,11 @@ end local.get $0 i32.load offset=8 + local.get $2 local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.get $2 i32.add i32.lt_s if @@ -28136,9 +28195,9 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $1 i32.load offset=12 - local.get $2 i32.add local.get $0 i32.load offset=8 @@ -36002,26 +36061,36 @@ i32.sub ) (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner3 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $invalid + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $invalid + end + return end return end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $byn-split-outlined-A$~lib/rt/itcms/__visit + end return end unreachable end local.get $0 - i32.load offset=4 + i32.load local.tee $0 if local.get $0 @@ -36030,7 +36099,7 @@ return end local.get $0 - i32.load + i32.load offset=4 local.tee $0 if local.get $0 @@ -36059,52 +36128,52 @@ (local $6 i32) (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 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 $1 + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $5 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $5 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $5 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $5 i32.const 5 i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3952 i32.store offset=4 global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36113,291 +36182,65 @@ 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 $1 - local.tee $2 - i32.load offset=8 - local.set $4 local.get $5 + i32.load offset=8 + 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 $4 + local.get $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $1 + local.get $5 i32.load offset=4 local.set $7 loop $for-loop|0 - local.get $3 - local.get $4 + local.get $1 + local.get $2 i32.lt_s if - local.get $3 + local.get $1 local.get $7 i32.add i32.load8_s - local.set $6 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $6 local.get $3 - local.get $2 + local.get $1 + local.get $5 i32.const 3952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.get $5 - i32.add local.get $6 + i32.add + local.get $3 i32.store8 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $8 - local.get $5 - local.get $0 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.store - local.get $1 - if - local.get $8 - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $8 - local.get $0 - i32.store offset=8 - local.get $8 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 - i32.load offset=4 - local.get $8 - i32.load - i32.sub - if - i32.const 0 - i32.const 1568 - i32.const 413 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 414 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 415 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 416 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $8 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 417 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - (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) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 6 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 5 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3984 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - 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 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $1 - local.tee $2 - i32.load offset=8 - local.set $4 - local.get $5 - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $7 - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $3 - local.get $7 - i32.add - i32.load8_u - local.set $6 - i32.const 3 - global.set $~argumentsLength - local.get $6 - local.get $3 - local.get $2 - i32.const 3984 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - if local.get $0 - local.tee $1 i32.const 1 i32.add local.set $0 - local.get $1 - local.get $5 - i32.add - local.get $6 - i32.store8 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|0 end end local.get $8 - local.get $5 + local.get $6 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 @@ -36447,7 +36290,7 @@ end local.get $8 i32.const 0 - call $~lib/typedarray/Uint8Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne if @@ -36460,7 +36303,7 @@ end local.get $8 i32.const 1 - call $~lib/typedarray/Uint8Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne if @@ -36473,7 +36316,7 @@ end local.get $8 i32.const 2 - call $~lib/typedarray/Uint8Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 5 i32.ne if @@ -36497,7 +36340,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> (local $0 i32) (local $1 i32) (local $2 i32) @@ -36507,51 +36350,51 @@ (local $6 i32) (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 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 $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 3 i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + call $~lib/typedarray/Uint8Array#__set + local.get $5 i32.const 5 i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4016 - i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 3984 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -36561,67 +36404,65 @@ 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 $1 - local.tee $2 - i32.load offset=8 - local.set $4 local.get $5 + i32.load offset=8 + local.set $2 + local.get $3 i32.const 12 - i32.const 5 + i32.const 4 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $1 + local.get $5 i32.load offset=4 local.set $7 loop $for-loop|0 - local.get $3 - local.get $4 + local.get $1 + local.get $2 i32.lt_s if - local.get $3 + local.get $1 local.get $7 i32.add i32.load8_u - local.set $6 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $6 local.get $3 - local.get $2 - i32.const 4016 + local.get $1 + local.get $5 + i32.const 3984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.tee $1 + local.get $6 + i32.add + local.get $3 + i32.store8 + local.get $0 i32.const 1 i32.add local.set $0 - local.get $1 - local.get $5 - i32.add - local.get $6 - i32.store8 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|0 end end local.get $8 - local.get $5 + local.get $6 local.get $0 call $~lib/rt/itcms/__renew local.tee $1 @@ -36671,7 +36512,7 @@ end local.get $8 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get + call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne if @@ -36684,7 +36525,7 @@ end local.get $8 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get + call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne if @@ -36697,7 +36538,7 @@ end local.get $8 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get + call $~lib/typedarray/Uint8Array#__get i32.const 5 i32.ne if @@ -36721,7 +36562,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> (local $0 i32) (local $1 i32) (local $2 i32) @@ -36731,51 +36572,51 @@ (local $6 i32) (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 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/Int16Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 0 i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 i32.const 1 i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 i32.const 3 i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 i32.const 5 i32.const 5 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 4048 - i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 4016 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -36788,100 +36629,87 @@ local.tee $3 i64.const 0 i64.store - local.get $1 - local.tee $2 + local.get $5 i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $5 + local.set $2 local.get $3 i32.const 12 - i32.const 6 + i32.const 5 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl + local.get $2 i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $1 + local.get $5 i32.load offset=4 - local.set $8 + local.set $7 loop $for-loop|0 - local.get $4 - local.get $5 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - i32.const 1 - i32.shl - local.get $8 + local.get $1 + local.get $7 i32.add - i32.load16_s - local.set $7 + i32.load8_u + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $4 - local.get $2 - i32.const 4048 + local.get $3 + local.get $1 + local.get $5 + i32.const 4016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.tee $1 - i32.const 1 + local.get $6 i32.add - local.set $0 - local.get $1 + local.get $3 + i32.store8 + local.get $0 i32.const 1 - i32.shl - local.get $6 i32.add - local.get $7 - i32.store16 + local.set $0 end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0 end end - local.get $3 + local.get $8 local.get $6 local.get $0 - i32.const 1 - i32.shl - local.tee $0 call $~lib/rt/itcms/__renew local.tee $1 i32.store local.get $1 if - local.get $3 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $8 local.get $0 i32.store offset=8 - local.get $3 + local.get $8 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store offset=8 - local.get $3 + local.get $8 i32.load offset=4 - local.get $3 + local.get $8 i32.load i32.sub if @@ -36892,10 +36720,8 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.load offset=8 - i32.const 1 - i32.shr_u i32.const 3 i32.ne if @@ -36906,9 +36732,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 0 - call $~lib/typedarray/Int16Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne if @@ -36919,9 +36745,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 1 - call $~lib/typedarray/Int16Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne if @@ -36932,9 +36758,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 2 - call $~lib/typedarray/Int16Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 i32.ne if @@ -36958,7 +36784,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> (local $0 i32) (local $1 i32) (local $2 i32) @@ -36968,51 +36794,51 @@ (local $6 i32) (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 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/Uint16Array#constructor - local.tee $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 + call $~lib/typedarray/Int16Array#__set + local.get $5 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 + call $~lib/typedarray/Int16Array#__set + local.get $5 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $1 + call $~lib/typedarray/Int16Array#__set + local.get $5 i32.const 3 i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 + call $~lib/typedarray/Int16Array#__set + local.get $5 i32.const 5 i32.const 5 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4080 - i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 4048 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -37025,71 +36851,69 @@ local.tee $3 i64.const 0 i64.store - local.get $1 - local.tee $2 + local.get $5 i32.load offset=8 i32.const 1 i32.shr_u - local.set $5 + local.set $2 local.get $3 i32.const 12 - i32.const 7 + i32.const 6 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.const 1 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $1 + local.get $5 i32.load offset=4 - local.set $8 + local.set $7 loop $for-loop|0 - local.get $4 - local.get $5 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 + local.get $1 i32.const 1 i32.shl - local.get $8 + local.get $7 i32.add - i32.load16_u - local.set $7 + i32.load16_s + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $4 - local.get $2 - i32.const 4080 + local.get $3 + local.get $1 + local.get $5 + i32.const 4048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $1 i32.const 1 i32.shl local.get $6 i32.add - local.get $7 + local.get $3 i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0 end end - local.get $3 + local.get $8 local.get $6 local.get $0 i32.const 1 @@ -37100,25 +36924,25 @@ i32.store local.get $1 if - local.get $3 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $8 local.get $0 i32.store offset=8 - local.get $3 + local.get $8 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store offset=8 - local.get $3 + local.get $8 i32.load offset=4 - local.get $3 + local.get $8 i32.load i32.sub if @@ -37129,7 +36953,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.load offset=8 i32.const 1 i32.shr_u @@ -37143,9 +36967,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 0 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne if @@ -37156,9 +36980,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 1 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne if @@ -37169,9 +36993,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 2 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int16Array#__get i32.const 5 i32.ne if @@ -37195,7 +37019,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> (local $0 i32) (local $1 i32) (local $2 i32) @@ -37205,51 +37029,51 @@ (local $6 i32) (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 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/Int32Array#constructor - local.tee $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 0 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint16Array#__set + local.get $5 i32.const 1 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint16Array#__set + local.get $5 i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint16Array#__set + local.get $5 i32.const 3 i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint16Array#__set + local.get $5 i32.const 5 i32.const 5 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4112 - i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 4080 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -37262,74 +37086,72 @@ local.tee $3 i64.const 0 i64.store - local.get $1 - local.tee $2 + local.get $5 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $5 + local.set $2 local.get $3 i32.const 12 - i32.const 8 + i32.const 7 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 2 + local.get $2 + i32.const 1 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $1 + local.get $5 i32.load offset=4 - local.set $8 + local.set $7 loop $for-loop|0 - local.get $4 - local.get $5 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - i32.const 2 + local.get $1 + i32.const 1 i32.shl - local.get $8 + local.get $7 i32.add - i32.load - local.set $7 + i32.load16_u + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $4 - local.get $2 - i32.const 4112 + local.get $3 + local.get $1 + local.get $5 + i32.const 4080 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.tee $1 i32.const 1 - i32.add - local.set $0 - local.get $1 - i32.const 2 i32.shl local.get $6 i32.add - local.get $7 - i32.store + local.get $3 + i32.store16 + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0 end end - local.get $3 + local.get $8 local.get $6 local.get $0 - i32.const 2 + i32.const 1 i32.shl local.tee $0 call $~lib/rt/itcms/__renew @@ -37337,25 +37159,25 @@ i32.store local.get $1 if - local.get $3 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $8 local.get $0 i32.store offset=8 - local.get $3 + local.get $8 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store offset=8 - local.get $3 + local.get $8 i32.load offset=4 - local.get $3 + local.get $8 i32.load i32.sub if @@ -37366,9 +37188,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u i32.const 3 i32.ne @@ -37380,9 +37202,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 0 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne if @@ -37393,9 +37215,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 1 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.ne if @@ -37406,9 +37228,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 2 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint16Array#__get i32.const 5 i32.ne if @@ -37432,7 +37254,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> (local $0 i32) (local $1 i32) (local $2 i32) @@ -37442,51 +37264,51 @@ (local $6 i32) (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 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/Uint32Array#constructor - local.tee $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Int32Array#__set + local.get $5 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Int32Array#__set + local.get $5 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Int32Array#__set + local.get $5 i32.const 3 i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Int32Array#__set + local.get $5 i32.const 5 i32.const 5 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4144 - i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 4112 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -37499,71 +37321,69 @@ local.tee $3 i64.const 0 i64.store - local.get $1 - local.tee $2 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $5 + local.set $2 local.get $3 i32.const 12 - i32.const 9 + i32.const 8 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $1 + local.get $5 i32.load offset=4 - local.set $8 + local.set $7 loop $for-loop|0 - local.get $4 - local.get $5 + 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 - local.set $7 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $4 - local.get $2 - i32.const 4144 + local.get $3 + local.get $1 + local.get $5 + i32.const 4112 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $1 i32.const 2 i32.shl local.get $6 i32.add - local.get $7 + local.get $3 i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0 end end - local.get $3 + local.get $8 local.get $6 local.get $0 i32.const 2 @@ -37574,25 +37394,25 @@ i32.store local.get $1 if - local.get $3 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $8 local.get $0 i32.store offset=8 - local.get $3 + local.get $8 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store offset=8 - local.get $3 + local.get $8 i32.load offset=4 - local.get $3 + local.get $8 i32.load i32.sub if @@ -37603,7 +37423,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u @@ -37617,9 +37437,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne if @@ -37630,9 +37450,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 1 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int32Array#__get i32.const 4 i32.ne if @@ -37643,9 +37463,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 2 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int32Array#__get i32.const 5 i32.ne if @@ -37669,7 +37489,7 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> (local $0 i32) (local $1 i32) (local $2 i32) @@ -37677,53 +37497,53 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 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/Int64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $5 i32.store - local.get $1 + local.get $5 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 + call $~lib/typedarray/Uint32Array#__set + local.get $5 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $5 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 + call $~lib/typedarray/Uint32Array#__set + local.get $5 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $5 i32.const 5 - i64.const 5 - call $~lib/typedarray/Int64Array#__set + i32.const 5 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4176 - i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 4144 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -37736,74 +37556,72 @@ local.tee $3 i64.const 0 i64.store - local.get $1 - local.tee $2 + local.get $5 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $5 + local.set $2 local.get $3 i32.const 12 - i32.const 10 + i32.const 9 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 3 + local.get $2 + i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $1 + local.get $5 i32.load offset=4 - local.set $8 + local.set $7 loop $for-loop|0 - local.get $4 - local.get $5 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 - i32.const 3 + local.get $1 + i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add - i64.load - local.set $7 + i32.load + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $4 - local.get $2 - i32.const 4176 + local.get $3 + local.get $1 + local.get $5 + i32.const 4144 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $1 - i32.const 3 + i32.const 2 i32.shl local.get $6 i32.add - local.get $7 - i64.store + local.get $3 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0 end end - local.get $3 + local.get $8 local.get $6 local.get $0 - i32.const 3 + i32.const 2 i32.shl local.tee $0 call $~lib/rt/itcms/__renew @@ -37811,25 +37629,25 @@ i32.store local.get $1 if - local.get $3 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $8 local.get $0 i32.store offset=8 - local.get $3 + local.get $8 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store offset=8 - local.get $3 + local.get $8 i32.load offset=4 - local.get $3 + local.get $8 i32.load i32.sub if @@ -37840,9 +37658,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u i32.const 3 i32.ne @@ -37854,11 +37672,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 @@ -37867,11 +37685,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.ne + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.ne if i32.const 0 i32.const 1568 @@ -37880,11 +37698,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.ne if i32.const 0 i32.const 1568 @@ -37906,61 +37724,61 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i64) + (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 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/Uint64Array#constructor - local.tee $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 0 i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 + call $~lib/typedarray/Int64Array#__set + local.get $5 i32.const 1 i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 + call $~lib/typedarray/Int64Array#__set + local.get $5 i32.const 2 i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 + call $~lib/typedarray/Int64Array#__set + local.get $5 i32.const 3 i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 + call $~lib/typedarray/Int64Array#__set + local.get $5 i32.const 5 i64.const 5 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4208 - i32.store offset=4 global.get $~lib/memory/__stack_pointer + i32.const 4176 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -37970,74 +37788,72 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $1 - local.tee $2 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u - local.set $5 - local.get $3 + local.set $2 + local.get $6 i32.const 12 - i32.const 11 + i32.const 10 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $1 + local.get $5 i32.load offset=4 - local.set $8 + local.set $7 loop $for-loop|0 - local.get $4 - local.get $5 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 + local.get $1 i32.const 3 i32.shl - local.get $8 + local.get $7 i32.add i64.load - local.set $7 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $4 - local.get $2 - i32.const 4208 + local.get $3 + local.get $1 + local.get $5 + i32.const 4176 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $1 i32.const 3 i32.shl local.get $6 i32.add - local.get $7 + local.get $3 i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0 end end - local.get $3 + local.get $8 local.get $6 local.get $0 i32.const 3 @@ -38048,25 +37864,25 @@ i32.store local.get $1 if - local.get $3 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $8 local.get $0 i32.store offset=8 - local.get $3 + local.get $8 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store offset=8 - local.get $3 + local.get $8 i32.load offset=4 - local.get $3 + local.get $8 i32.load i32.sub if @@ -38077,7 +37893,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.load offset=8 i32.const 3 i32.shr_u @@ -38091,9 +37907,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 0 - call $~lib/typedarray/Uint64Array#__get + call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne if @@ -38104,9 +37920,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 1 - call $~lib/typedarray/Uint64Array#__get + call $~lib/typedarray/Int64Array#__get i64.const 4 i64.ne if @@ -38117,9 +37933,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 2 - call $~lib/typedarray/Uint64Array#__get + call $~lib/typedarray/Int64Array#__get i64.const 5 i64.ne if @@ -38143,19 +37959,63 @@ call $~lib/builtins/abort unreachable ) - (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (func $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) + (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 + i32.const 6 + call $~lib/typedarray/Uint64Array#constructor + local.tee $5 + i32.store + local.get $5 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $5 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $5 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $5 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $5 + i32.const 5 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4208 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -38163,42 +38023,233 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $6 i64.const 0 i64.store - local.get $1 + local.get $5 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $2 + local.get $6 + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=4 + local.get $5 + i32.load offset=4 + local.set $7 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $1 + i32.const 3 + i32.shl + local.get $7 + i32.add + i64.load + local.set $3 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $1 + local.get $5 + i32.const 4208 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + if + local.get $0 + i32.const 3 + i32.shl + local.get $6 + i32.add + local.get $3 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $8 + local.get $6 + local.get $0 + i32.const 3 + i32.shl + local.tee $0 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.store + local.get $1 + if + local.get $8 + local.get $1 + call $byn-split-outlined-A$~lib/rt/itcms/__link + end + local.get $8 + local.get $0 i32.store offset=8 + local.get $8 local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 + i32.load offset=4 + local.get $8 + i32.load + i32.sub + if + i32.const 0 + i32.const 1568 + i32.const 413 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 414 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 415 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 416 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 417 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $2 i32.const 6 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $5 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $5 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $5 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $5 i32.const 5 f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 4240 i32.store offset=4 global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38207,74 +38258,72 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $1 - local.tee $2 + local.get $5 i32.load offset=8 i32.const 2 i32.shr_u - local.set $5 - local.get $3 + local.set $2 + local.get $6 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.const 2 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $1 + local.get $5 i32.load offset=4 - local.set $8 + local.set $7 loop $for-loop|0 - local.get $4 - local.get $5 + 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 f32.load - local.set $7 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $4 - local.get $2 + local.get $3 + local.get $1 + local.get $5 i32.const 4240 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) if local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $1 i32.const 2 i32.shl local.get $6 i32.add - local.get $7 + local.get $3 f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0 end end - local.get $3 + local.get $8 local.get $6 local.get $0 i32.const 2 @@ -38285,25 +38334,25 @@ i32.store local.get $1 if - local.get $3 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $8 local.get $0 i32.store offset=8 - local.get $3 + local.get $8 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store offset=8 - local.get $3 + local.get $8 i32.load offset=4 - local.get $3 + local.get $8 i32.load i32.sub if @@ -38314,7 +38363,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u @@ -38328,7 +38377,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 @@ -38341,7 +38390,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 @@ -38354,7 +38403,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 5 @@ -38384,58 +38433,58 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f64) + (local $7 i32) (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 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/Float64Array#constructor - local.tee $1 + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $5 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $5 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $5 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $5 i32.const 5 f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 4272 i32.store offset=4 global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38444,74 +38493,72 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $1 - local.tee $2 + local.get $5 i32.load offset=8 i32.const 3 i32.shr_u - local.set $5 - local.get $3 + local.set $2 + local.get $6 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $2 i32.const 3 i32.shl i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $1 + local.get $5 i32.load offset=4 - local.set $8 + local.set $7 loop $for-loop|0 - local.get $4 - local.get $5 + local.get $1 + local.get $2 i32.lt_s if - local.get $4 + local.get $1 i32.const 3 i32.shl - local.get $8 + local.get $7 i32.add f64.load - local.set $7 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $7 - local.get $4 - local.get $2 + local.get $3 + local.get $1 + local.get $5 i32.const 4272 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) if local.get $0 - local.tee $1 - i32.const 1 - i32.add - local.set $0 - local.get $1 i32.const 3 i32.shl local.get $6 i32.add - local.get $7 + local.get $3 f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|0 end end - local.get $3 + local.get $8 local.get $6 local.get $0 i32.const 3 @@ -38522,25 +38569,25 @@ i32.store local.get $1 if - local.get $3 + local.get $8 local.get $1 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $8 local.get $0 i32.store offset=8 - local.get $3 + local.get $8 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.store offset=8 - local.get $3 + local.get $8 i32.load offset=4 - local.get $3 + local.get $8 i32.load i32.sub if @@ -38551,7 +38598,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.load offset=8 i32.const 3 i32.shr_u @@ -38565,7 +38612,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 3 @@ -38578,7 +38625,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 @@ -38591,7 +38638,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $8 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -39036,6 +39083,1159 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i64.const 0 + i64.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=16 + local.get $3 + i32.const 7616 + i32.store + local.get $3 + i32.const 7628 + i32.load + local.tee $4 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $5 + 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 $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $5 + i32.load offset=4 + local.set $7 + local.get $5 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $8 + i32.const 1 + i32.gt_u + if + local.get $8 + i32.const 1 + i32.shr_u + local.set $3 + local.get $8 + i32.const 1 + i32.sub + local.set $8 + loop $while-continue|0 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $7 + i32.add + local.tee $9 + i64.load + local.set $2 + local.get $9 + local.get $8 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $7 + i32.add + local.tee $9 + i64.load + i64.store + local.get $9 + local.get $2 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $5 + local.get $0 + call $~lib/typedarray/Int64Array#__get + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 + local.get $1 + local.get $6 + i32.lt_u + if + local.get $1 + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + i64.load + local.set $2 + local.get $7 + local.get $5 + local.get $1 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + i64.load + i64.store + local.get $7 + local.get $2 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|01 + end + end + end + local.get $3 + i32.store offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i64.const 0 + i64.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=16 + local.get $3 + i32.const 7616 + i32.store + local.get $3 + i32.const 7628 + i32.load + local.tee $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $6 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $5 + 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 $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $5 + i32.load offset=4 + local.set $7 + local.get $5 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $8 + i32.const 1 + i32.gt_u + if + local.get $8 + i32.const 1 + i32.shr_u + local.set $3 + local.get $8 + i32.const 1 + i32.sub + local.set $8 + loop $while-continue|0 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $7 + i32.add + local.tee $9 + i64.load + local.set $2 + local.get $9 + local.get $8 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $7 + i32.add + local.tee $9 + i64.load + i64.store + local.get $9 + local.get $2 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $5 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 + local.get $1 + local.get $6 + i32.lt_u + if + local.get $1 + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + i64.load + local.set $2 + local.get $7 + local.get $5 + local.get $1 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + i64.load + i64.store + local.get $7 + local.get $2 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|01 + end + end + end + local.get $3 + i32.store offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 f32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i64.const 0 + i64.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=16 + local.get $3 + i32.const 7616 + i32.store + local.get $3 + i32.const 7628 + i32.load + local.tee $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $6 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $5 + 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 $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $5 + i32.load offset=4 + local.set $7 + local.get $5 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $8 + i32.const 1 + i32.gt_u + if + local.get $8 + i32.const 1 + i32.shr_u + local.set $3 + local.get $8 + i32.const 1 + i32.sub + local.set $8 + loop $while-continue|0 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $7 + i32.add + local.tee $9 + f32.load + local.set $2 + local.get $9 + local.get $8 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $7 + i32.add + local.tee $9 + f32.load + f32.store + local.get $9 + local.get $2 + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $5 + local.get $0 + call $~lib/typedarray/Float32Array#__get + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f32.convert_i32_s + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 + local.get $1 + local.get $6 + i32.lt_u + if + local.get $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $7 + f32.load + local.set $2 + local.get $7 + local.get $5 + local.get $1 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $7 + f32.load + f32.store + local.get $7 + local.get $2 + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|01 + end + end + end + local.get $3 + i32.store offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i64.const 0 + i64.store offset=8 + local.get $3 + i32.const 0 + i32.store offset=16 + local.get $3 + i32.const 7616 + i32.store + local.get $3 + i32.const 7628 + i32.load + local.tee $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Float64Array#constructor + local.tee $6 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $5 + 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 $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $5 + i32.load offset=4 + local.set $7 + local.get $5 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $8 + i32.const 1 + i32.gt_u + if + local.get $8 + i32.const 1 + i32.shr_u + local.set $3 + local.get $8 + i32.const 1 + i32.sub + local.set $8 + loop $while-continue|0 + local.get $0 + local.get $3 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $7 + i32.add + local.tee $9 + f64.load + local.set $2 + local.get $9 + local.get $8 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $7 + i32.add + local.tee $9 + f64.load + f64.store + local.get $9 + local.get $2 + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $5 + local.get $0 + call $~lib/typedarray/Float64Array#__get + i32.const 7616 + local.get $4 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f64.convert_i32_s + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $6 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|01 + local.get $1 + local.get $6 + i32.lt_u + if + local.get $1 + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + f64.load + local.set $2 + local.get $7 + local.get $5 + local.get $1 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $7 + f64.load + f64.store + local.get $7 + local.get $2 + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $while-continue|01 + end + end + end + local.get $3 + i32.store offset=16 + local.get $3 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -39168,143 +40368,143 @@ (local $8 i32) (local $9 i32) (local $10 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $8 - i32.store - local.get $8 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + 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 $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + 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 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $8 + 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 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=16 + local.get $8 + local.get $7 + 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 - 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 $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - 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 $3 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $3 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $3 - 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - 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 $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $9 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 - local.get $9 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 $8 i32.load offset=4 i32.const 3 i32.add - local.set $6 + local.set $7 i32.const 11092 i32.load - local.set $7 + local.set $9 i32.const 11100 i32.load local.set $10 loop $for-loop|0 - local.get $1 + local.get $0 local.get $10 i32.lt_s if - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $7 + local.get $9 i32.add f32.load local.tee $4 @@ -39319,10 +40519,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|0 end end @@ -39331,59 +40531,59 @@ 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 $8 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $9 local.get $8 + 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 $8 + 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 $8 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 $8 i32.load offset=4 i32.const 2 i32.add - local.set $1 + local.set $0 i32.const 11188 i32.load local.set $6 i32.const 11196 i32.load local.set $7 - loop $for-loop|04 - local.get $0 + loop $for-loop|05 + local.get $3 local.get $7 i32.lt_s if local.get $0 - local.get $1 + local.get $3 i32.add - local.get $0 + local.get $3 i32.const 3 i32.shl local.get $6 @@ -39401,11 +40601,11 @@ i32.const 0 end i32.store8 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|04 + local.set $3 + br $for-loop|05 end end i32.const 10 @@ -39417,19 +40617,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - local.get $9 - local.get $2 + local.get $8 + local.get $1 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $9 - local.get $3 + local.get $8 + local.get $2 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 $8 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -39440,7 +40640,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer @@ -39557,143 +40757,143 @@ (local $8 i32) (local $9 i32) (local $10 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $8 - i32.store - local.get $8 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $8 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $8 - 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 $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - 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 $3 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $3 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $3 - 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - 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 $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $9 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 - local.get $9 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + 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 $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + 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 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $8 + 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 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=16 + local.get $8 + local.get $7 + 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 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 $8 i32.load offset=4 i32.const 3 i32.add - local.set $6 + local.set $7 i32.const 11092 i32.load - local.set $7 + local.set $9 i32.const 11100 i32.load local.set $10 loop $for-loop|0 - local.get $1 + local.get $0 local.get $10 i32.lt_s if - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $7 + local.get $9 i32.add f32.load local.tee $4 @@ -39708,10 +40908,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|0 end end @@ -39720,59 +40920,59 @@ 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 $8 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $9 local.get $8 + 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 $8 + 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 $8 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 $8 i32.load offset=4 i32.const 2 i32.add - local.set $1 + local.set $0 i32.const 11188 i32.load local.set $6 i32.const 11196 i32.load local.set $7 - loop $for-loop|04 - local.get $0 + loop $for-loop|05 + local.get $3 local.get $7 i32.lt_s if local.get $0 - local.get $1 + local.get $3 i32.add - local.get $0 + local.get $3 i32.const 3 i32.shl local.get $6 @@ -39790,11 +40990,11 @@ i32.const 0 end i32.store8 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|04 + local.set $3 + br $for-loop|05 end end i32.const 10 @@ -39806,19 +41006,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - local.get $9 - local.get $2 + local.get $8 + local.get $1 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> - local.get $9 - local.get $3 + local.get $8 + local.get $2 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 $8 call $~lib/typedarray/Int8Array#set<~lib/array/Array> i32.const 10 i32.const 0 @@ -39829,7 +41029,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer @@ -39937,152 +41137,154 @@ (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 f64) - (local $4 i32) - (local $5 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i64.const 0 - i64.store offset=8 - local.get $4 - i32.const 0 - i32.store offset=16 - local.get $4 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - 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 $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $7 + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $7 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - 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 $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $4 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - 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/Uint8ClampedArray#constructor - local.tee $8 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 + 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 + i32.const 0 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + 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 $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + 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 $8 + i32.store offset=8 + local.get $8 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $8 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $8 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + block $folding-inner0 i32.const 11020 i32.load - local.get $8 + local.get $11 i32.load offset=8 i32.gt_s br_if $folding-inner0 - local.get $8 + local.get $11 i32.load offset=4 - local.set $9 + local.set $12 i32.const 11012 i32.load - local.set $10 + local.set $13 i32.const 11020 i32.load - local.set $11 + local.set $9 loop $for-loop|0 - local.get $1 - local.get $11 + local.get $0 + local.get $9 i32.lt_s if - local.get $1 - local.get $9 + local.get $0 + local.get $12 i32.add - local.get $1 + i32.const 255 + local.get $0 i32.const 2 i32.shl - local.get $10 + local.get $13 i32.add i32.load - local.tee $5 - i32.const 255 - local.get $5 + local.tee $10 i32.sub i32.const 31 i32.shr_s + local.get $10 i32.or - local.get $5 + local.get $10 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.and 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 @@ -40091,19 +41293,17 @@ i32.const 63 i32.const 11728 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 $8 - local.get $1 + local.get $11 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - i32.const 0 - local.set $1 - local.get $8 + local.get $11 i32.load offset=8 i32.const 11100 i32.load @@ -40111,24 +41311,24 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $8 + local.get $11 i32.load offset=4 i32.const 3 i32.add - local.set $5 + local.set $0 i32.const 11092 i32.load local.set $9 i32.const 11100 i32.load local.set $10 - loop $for-loop|04 + loop $for-loop|05 local.get $1 local.get $10 i32.lt_s if + local.get $0 local.get $1 - local.get $5 i32.add local.get $1 i32.const 2 @@ -40136,15 +41336,15 @@ local.get $9 i32.add f32.load - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 f32.sub f32.const 0 f32.eq if (result i32) f32.const 0 f32.const 255 - local.get $2 + local.get $4 f32.min f32.max i32.trunc_f32_u @@ -40156,7 +41356,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|04 + br $for-loop|05 end end i32.const 10 @@ -40164,14 +41364,14 @@ i32.const 63 i32.const 11824 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 $8 - local.get $1 + local.get $11 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $8 + local.get $11 local.get $6 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> @@ -40180,17 +41380,17 @@ i32.const 63 i32.const 11856 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 $8 - local.get $1 + local.get $11 + 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 $8 + local.get $11 i32.load offset=8 i32.const 11196 i32.load @@ -40198,40 +41398,40 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $8 + local.get $11 i32.load offset=4 i32.const 2 i32.add - local.set $1 + local.set $0 i32.const 11188 i32.load - local.set $5 + local.set $1 i32.const 11196 i32.load local.set $6 - loop $for-loop|08 - local.get $0 + loop $for-loop|011 + local.get $2 local.get $6 i32.lt_s if local.get $0 - local.get $1 + local.get $2 i32.add - local.get $0 + local.get $2 i32.const 3 i32.shl - local.get $5 + local.get $1 i32.add f64.load - local.tee $3 - local.get $3 + local.tee $5 + local.get $5 f64.sub f64.const 0 f64.eq if (result i32) f64.const 0 f64.const 255 - local.get $3 + local.get $5 f64.min f64.max i32.trunc_f64_u @@ -40239,11 +41439,11 @@ i32.const 0 end i32.store8 - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|08 + local.set $2 + br $for-loop|011 end end i32.const 10 @@ -40255,22 +41455,20 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $11 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - local.get $8 + local.get $11 local.get $7 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> + local.get $11 local.get $8 - local.get $4 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 - i32.const 0 - local.set $0 - local.get $8 + local.get $11 i32.load offset=8 i32.const 11276 i32.load @@ -40278,35 +41476,35 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $8 + local.get $11 i32.load offset=4 i32.const 7 i32.add - local.set $1 + local.set $0 i32.const 11268 i32.load - local.set $4 + local.set $1 i32.const 11276 i32.load - local.set $5 - loop $for-loop|012 - local.get $0 - local.get $5 - i32.lt_s + local.set $2 + loop $for-loop|017 + local.get $2 + local.get $3 + i32.gt_s if local.get $0 - local.get $1 + local.get $3 i32.add - local.get $0 - local.get $4 + i32.const 255 + local.get $1 + local.get $3 i32.add i32.load8_s local.tee $6 - i32.const 255 - local.get $6 i32.sub i32.const 31 i32.shr_s + local.get $6 i32.or local.get $6 i32.const 31 @@ -40315,11 +41513,11 @@ i32.xor i32.and i32.store8 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|012 + local.set $3 + br $for-loop|017 end end i32.const 10 @@ -40331,7 +41529,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $8 + local.get $11 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer @@ -40400,9 +41598,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 @@ -40453,147 +41651,147 @@ (local $8 i32) (local $9 i32) (local $10 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $8 - i32.store - local.get $8 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $8 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $8 - 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 $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - 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 $3 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $3 - 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - 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 $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $9 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + 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 $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + 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 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $8 + 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 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=16 + local.get $8 + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 i32.const 11100 i32.load i32.const 3 i32.add - local.get $9 + local.get $8 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 $8 i32.load offset=4 i32.const 6 i32.add - local.set $6 + local.set $7 i32.const 11092 i32.load - local.set $7 + local.set $9 i32.const 11100 i32.load local.set $10 loop $for-loop|0 - local.get $1 + local.get $0 local.get $10 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $6 + local.get $7 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $7 + local.get $9 i32.add f32.load local.tee $4 @@ -40608,10 +41806,10 @@ 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 @@ -40620,27 +41818,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 $8 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $9 local.get $8 + 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 $8 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -40649,34 +41847,34 @@ i32.load i32.const 2 i32.add - local.get $9 + local.get $8 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 $8 i32.load offset=4 i32.const 4 i32.add - local.set $1 + local.set $0 i32.const 11188 i32.load local.set $6 i32.const 11196 i32.load local.set $7 - loop $for-loop|04 - local.get $0 + loop $for-loop|05 + local.get $3 local.get $7 i32.lt_s if - local.get $0 + local.get $3 i32.const 1 i32.shl - local.get $1 - i32.add local.get $0 + i32.add + local.get $3 i32.const 3 i32.shl local.get $6 @@ -40694,11 +41892,11 @@ i32.const 0 end i32.store16 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|04 + local.set $3 + br $for-loop|05 end end i32.const 10 @@ -40710,19 +41908,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - local.get $9 - local.get $2 + local.get $8 + local.get $1 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $9 - local.get $3 + local.get $8 + local.get $2 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 $8 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -40733,7 +41931,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer @@ -40802,9 +42000,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 @@ -40855,147 +42053,147 @@ (local $8 i32) (local $9 i32) (local $10 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $8 - i32.store - local.get $8 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $8 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $8 - 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 $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - 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 $3 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $3 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $3 - 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $9 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - i32.const 10 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 65 - i32.const 12240 - call $~lib/rt/__newArray - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $9 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + 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 $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + 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 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $8 + 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 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=16 + local.get $8 + local.get $7 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 i32.const 11100 i32.load i32.const 3 i32.add - local.get $9 + local.get $8 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 $8 i32.load offset=4 i32.const 6 i32.add - local.set $6 + local.set $7 i32.const 11092 i32.load - local.set $7 + local.set $9 i32.const 11100 i32.load local.set $10 loop $for-loop|0 - local.get $1 + local.get $0 local.get $10 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $6 + local.get $7 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $7 + local.get $9 i32.add f32.load local.tee $4 @@ -41010,10 +42208,10 @@ 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 @@ -41022,27 +42220,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 $8 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $9 local.get $8 + 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 $8 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -41051,34 +42249,34 @@ i32.load i32.const 2 i32.add - local.get $9 + local.get $8 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 $8 i32.load offset=4 i32.const 4 i32.add - local.set $1 + local.set $0 i32.const 11188 i32.load local.set $6 i32.const 11196 i32.load local.set $7 - loop $for-loop|04 - local.get $0 + loop $for-loop|05 + local.get $3 local.get $7 i32.lt_s if - local.get $0 + local.get $3 i32.const 1 i32.shl - local.get $1 - i32.add local.get $0 + i32.add + local.get $3 i32.const 3 i32.shl local.get $6 @@ -41096,11 +42294,11 @@ i32.const 0 end i32.store16 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|04 + local.set $3 + br $for-loop|05 end end i32.const 10 @@ -41112,19 +42310,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - local.get $9 - local.get $2 + local.get $8 + local.get $1 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> - local.get $9 - local.get $3 + local.get $8 + local.get $2 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 $8 call $~lib/typedarray/Int16Array#set<~lib/array/Array> i32.const 10 i32.const 1 @@ -41135,7 +42333,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $9 + local.get $8 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer @@ -41204,9 +42402,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 @@ -41249,123 +42447,123 @@ (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) (local $9 i32) (local $10 i32) (local $11 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - 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 $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - 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 $3 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $3 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $3 - 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $9 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 12528 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $9 - local.get $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + 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 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + 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 $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $9 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12528 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + local.get $9 + 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-inner1 i32.const 11100 i32.load i32.const 3 @@ -41375,7 +42573,7 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner0 + br_if $folding-inner1 local.get $9 i32.load offset=4 i32.const 12 @@ -41388,37 +42586,37 @@ i32.load local.set $11 loop $for-loop|0 - local.get $1 + local.get $0 local.get $11 i32.lt_s if - local.get $1 + local.get $10 + local.get $0 i32.const 2 i32.shl - local.tee $8 - local.get $10 + local.tee $5 i32.add f32.load - local.set $4 + local.set $3 + local.get $5 local.get $7 - local.get $8 i32.add - local.get $4 - local.get $4 + local.get $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.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -41427,12 +42625,12 @@ i32.const 16 i32.const 12640 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 $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $9 local.get $6 @@ -41442,12 +42640,12 @@ i32.const 16 i32.const 12704 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 $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -41461,51 +42659,51 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner0 + br_if $folding-inner1 local.get $9 i32.load offset=4 i32.const 8 i32.add - local.set $1 + local.set $0 i32.const 11188 i32.load - local.set $6 + local.set $5 i32.const 11196 i32.load - local.set $7 - loop $for-loop|04 - local.get $0 - local.get $7 + local.set $6 + loop $for-loop|05 + local.get $2 + local.get $6 i32.lt_s if - local.get $0 + local.get $2 i32.const 2 i32.shl - local.get $1 - i32.add local.get $0 + i32.add + 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.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|04 + local.set $2 + br $for-loop|05 end end i32.const 10 @@ -41521,10 +42719,10 @@ local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $9 - local.get $2 + local.get $8 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $9 - local.get $3 + local.get $1 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -41609,9 +42807,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 @@ -41621,156 +42819,156 @@ i32.const 12960 i32.store i32.const 12960 - i32.const 3 - local.get $2 - f64.convert_i32_s - local.get $4 - f64.convert_i32_u - local.get $5 - f64.convert_i32_u - f64.const 0 - f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f64) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store - local.get $6 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $6 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - 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 $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 + i32.const 3 + local.get $2 + f64.convert_i32_s + local.get $4 + f64.convert_i32_u + local.get $5 + f64.convert_i32_u + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 f32) + (local $4 f64) + (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 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - 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 $3 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $3 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $3 - 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $9 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 66 - i32.const 12896 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=16 - local.get $9 - local.get $7 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + 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 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $8 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + 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 $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $9 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 12896 + call $~lib/rt/__newArray + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=16 + local.get $9 + 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-inner1 i32.const 11100 i32.load i32.const 3 @@ -41780,7 +42978,7 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner0 + br_if $folding-inner1 local.get $9 i32.load offset=4 i32.const 12 @@ -41793,37 +42991,37 @@ i32.load local.set $11 loop $for-loop|0 - local.get $1 + local.get $0 local.get $11 i32.lt_s if - local.get $1 + local.get $10 + local.get $0 i32.const 2 i32.shl - local.tee $8 - local.get $10 + local.tee $5 i32.add f32.load - local.set $4 + local.set $3 + local.get $5 local.get $7 - local.get $8 i32.add - local.get $4 - local.get $4 + local.get $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.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -41832,12 +43030,12 @@ i32.const 66 i32.const 13008 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 $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $9 local.get $6 @@ -41847,12 +43045,12 @@ i32.const 66 i32.const 13072 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 $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -41866,51 +43064,51 @@ i32.const 2 i32.shr_u i32.gt_s - br_if $folding-inner0 + br_if $folding-inner1 local.get $9 i32.load offset=4 i32.const 8 i32.add - local.set $1 + local.set $0 i32.const 11188 i32.load - local.set $6 + local.set $5 i32.const 11196 i32.load - local.set $7 - loop $for-loop|04 - local.get $0 - local.get $7 + local.set $6 + loop $for-loop|05 + local.get $2 + local.get $6 i32.lt_s if - local.get $0 + local.get $2 i32.const 2 i32.shl - local.get $1 - i32.add local.get $0 + i32.add + 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.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|04 + local.set $2 + br $for-loop|05 end end i32.const 10 @@ -41926,10 +43124,10 @@ local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $9 - local.get $2 + local.get $8 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $9 - local.get $3 + local.get $1 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -42015,9 +43213,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 @@ -42068,112 +43266,112 @@ (local $8 i32) (local $9 i32) (local $10 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - 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 $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - 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 $3 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $3 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $3 - 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $8 - 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 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $8 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + 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 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + 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 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $8 + 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 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $8 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 i32.const 11100 i32.load i32.const 3 @@ -42183,7 +43381,7 @@ i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner0 + br_if $folding-inner1 local.get $8 i32.load offset=4 i32.const 24 @@ -42196,16 +43394,16 @@ i32.load local.set $6 loop $for-loop|0 - local.get $1 + local.get $0 local.get $6 i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl local.get $9 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $10 @@ -42223,10 +43421,10 @@ i64.const 0 end i64.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -42235,12 +43433,12 @@ i32.const 67 i32.const 13424 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 $8 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $8 local.get $7 @@ -42250,12 +43448,12 @@ i32.const 67 i32.const 13536 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 $8 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -42269,32 +43467,32 @@ i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner0 + br_if $folding-inner1 local.get $8 i32.load offset=4 i32.const 16 i32.add - local.set $1 + local.set $0 i32.const 11188 i32.load local.set $6 i32.const 11196 i32.load local.set $7 - loop $for-loop|04 - local.get $0 + loop $for-loop|05 + local.get $3 local.get $7 i32.lt_s if - local.get $0 + local.get $6 + local.get $3 i32.const 3 i32.shl local.tee $9 - local.get $6 i32.add f64.load local.set $4 - local.get $1 + local.get $0 local.get $9 i32.add local.get $4 @@ -42309,11 +43507,11 @@ i64.const 0 end i64.store - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|04 + local.set $3 + br $for-loop|05 end end i32.const 10 @@ -42329,10 +43527,10 @@ local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $8 - local.get $2 + local.get $1 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $8 - local.get $3 + local.get $2 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -42418,9 +43616,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 @@ -42462,121 +43660,121 @@ (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 $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - 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 $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 f32) + (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 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - 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 $3 - i32.store offset=8 - local.get $3 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $3 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $3 - 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $8 - 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 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $8 - local.get $6 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $7 + i32.store + local.get $7 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $7 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + 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 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + 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 + i32.store offset=8 + local.get $2 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $2 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $8 + 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 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $8 + local.get $6 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner1 i32.const 11100 i32.load i32.const 3 @@ -42586,7 +43784,7 @@ i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner0 + br_if $folding-inner1 local.get $8 i32.load offset=4 i32.const 24 @@ -42599,16 +43797,16 @@ i32.load local.set $6 loop $for-loop|0 - local.get $1 + local.get $0 local.get $6 i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl local.get $9 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $10 @@ -42626,10 +43824,10 @@ i64.const 0 end i64.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -42638,12 +43836,12 @@ i32.const 68 i32.const 14032 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 $8 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $8 local.get $7 @@ -42653,12 +43851,12 @@ i32.const 68 i32.const 14144 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 $8 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11184 @@ -42672,32 +43870,32 @@ i32.const 3 i32.shr_u i32.gt_s - br_if $folding-inner0 + br_if $folding-inner1 local.get $8 i32.load offset=4 i32.const 16 i32.add - local.set $1 + local.set $0 i32.const 11188 i32.load local.set $6 i32.const 11196 i32.load local.set $7 - loop $for-loop|04 - local.get $0 + loop $for-loop|05 + local.get $3 local.get $7 i32.lt_s if - local.get $0 + local.get $6 + local.get $3 i32.const 3 i32.shl local.tee $9 - local.get $6 i32.add f64.load local.set $4 - local.get $1 + local.get $0 local.get $9 i32.add local.get $4 @@ -42712,11 +43910,11 @@ i64.const 0 end i64.store - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|04 + local.set $3 + br $for-loop|05 end end i32.const 10 @@ -42732,10 +43930,10 @@ local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $8 - local.get $2 + local.get $1 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $8 - local.get $3 + local.get $2 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 @@ -42821,9 +44019,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 @@ -42875,95 +44073,96 @@ (local $9 i32) (local $10 i32) (local $11 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i64.const 0 - i64.store offset=8 - local.get $4 - i32.const 0 - i32.store offset=16 - local.get $4 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $7 - i32.store - local.get $7 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $7 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - 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 $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $8 + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $8 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - 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 $9 - i32.store offset=8 - local.get $9 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $9 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $9 - 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 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i64.const 0 + i64.store offset=8 + local.get $5 + i32.const 0 + i32.store offset=16 + local.get $5 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store + local.get $6 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $6 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + 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 $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $7 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + 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 $8 + i32.store offset=8 + local.get $8 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $8 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $8 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + block $folding-inner0 i32.const 11020 i32.load local.get $10 @@ -42974,34 +44173,34 @@ br_if $folding-inner0 local.get $10 i32.load offset=4 - local.set $5 + local.set $9 i32.const 11012 i32.load - local.set $6 + local.set $11 i32.const 11020 i32.load - local.set $11 + local.set $12 loop $for-loop|0 - local.get $2 - local.get $11 + local.get $0 + local.get $12 i32.lt_s if - local.get $2 + local.get $9 + local.get $0 i32.const 2 i32.shl - local.tee $4 - local.get $5 + local.tee $5 i32.add - local.get $4 - local.get $6 + local.get $5 + local.get $11 i32.add i32.load f32.convert_i32_s f32.store - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end @@ -43010,12 +44209,12 @@ i32.const 61 i32.const 14480 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 $10 - local.get $2 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -43029,14 +44228,14 @@ i32.const 61 i32.const 14592 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 $10 - local.get $2 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - local.get $7 + local.get $6 i32.load offset=8 i32.const 3 i32.shr_u @@ -43052,38 +44251,38 @@ i32.load offset=4 i32.const 24 i32.add - local.set $2 - local.get $7 + local.set $0 + local.get $6 i32.load offset=4 - local.set $4 - local.get $7 + local.set $5 + local.get $6 i32.load offset=8 i32.const 3 i32.shr_u - local.set $5 - loop $for-loop|01 - local.get $3 - local.get $5 + local.set $6 + loop $for-loop|02 + local.get $1 + local.get $6 i32.lt_s if - local.get $3 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add - local.get $3 + local.get $1 i32.const 3 i32.shl - local.get $4 + local.get $5 i32.add i64.load f32.convert_i64_s f32.store - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 - br $for-loop|01 + local.set $1 + br $for-loop|02 end end i32.const 10 @@ -43091,16 +44290,14 @@ i32.const 61 i32.const 14656 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 $10 - local.get $2 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> - i32.const 0 - local.set $2 - local.get $8 + local.get $7 i32.load offset=8 local.get $10 i32.load offset=8 @@ -43110,14 +44307,14 @@ br_if $folding-inner0 local.get $10 i32.load offset=4 - local.set $3 - local.get $8 + local.set $0 + local.get $7 i32.load offset=4 - local.set $4 - local.get $8 + local.set $1 + local.get $7 i32.load offset=8 local.set $5 - loop $for-loop|03 + loop $for-loop|06 local.get $2 local.get $5 i32.lt_s @@ -43125,10 +44322,10 @@ local.get $2 i32.const 2 i32.shl - local.get $3 + local.get $0 i32.add + local.get $1 local.get $2 - local.get $4 i32.add i32.load8_u f32.convert_i32_u @@ -43137,10 +44334,10 @@ i32.const 1 i32.add local.set $2 - br $for-loop|03 + br $for-loop|06 end end - local.get $9 + local.get $8 i32.load offset=8 i32.const 1 i32.shr_u @@ -43156,38 +44353,38 @@ i32.load offset=4 i32.const 16 i32.add - local.set $2 - local.get $9 + local.set $0 + local.get $8 i32.load offset=4 - local.set $3 - local.get $9 + local.set $1 + local.get $8 i32.load offset=8 i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|05 - local.get $0 - local.get $4 - i32.lt_s + local.set $2 + loop $for-loop|010 + local.get $2 + local.get $3 + i32.gt_s if - local.get $0 + local.get $3 i32.const 2 i32.shl - local.get $2 - i32.add local.get $0 + i32.add + local.get $3 i32.const 1 i32.shl - local.get $3 + local.get $1 i32.add i32.load16_s f32.convert_i32_s f32.store - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|05 + local.set $3 + br $for-loop|010 end end global.get $~lib/memory/__stack_pointer @@ -43210,31 +44407,31 @@ local.set $0 i32.const 11268 i32.load - local.set $2 + local.set $1 i32.const 11276 i32.load - local.set $3 - loop $for-loop|09 - local.get $1 - local.get $3 - i32.lt_s + local.set $2 + loop $for-loop|016 + local.get $2 + local.get $4 + i32.gt_s if - local.get $1 + local.get $4 i32.const 2 i32.shl local.get $0 i32.add local.get $1 - local.get $2 + local.get $4 i32.add i32.load8_s f32.convert_i32_s f32.store - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 - br $for-loop|09 + local.set $4 + br $for-loop|016 end end i32.const 10 @@ -43316,9 +44513,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 @@ -43352,149 +44549,151 @@ end global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> - (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.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + (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) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + 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 + i32.const 0 + i32.store offset=16 + local.get $6 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $9 + i32.store + local.get $9 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $9 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $9 + 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 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $6 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + 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 $7 + i32.store offset=8 + local.get $7 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $7 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $7 + 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 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i64.const 0 - i64.store offset=8 - local.get $4 - i32.const 0 - i32.store offset=16 - local.get $4 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $4 - i32.store - local.get $4 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $4 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - 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 $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $5 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $5 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - 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 $6 - i32.store offset=8 - local.get $6 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $6 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - 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/Float64Array#constructor - local.tee $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 i32.const 11020 i32.load - local.get $7 + local.get $10 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $7 + local.get $10 i32.load offset=4 - local.set $8 + local.set $11 i32.const 11012 i32.load - local.set $9 + local.set $12 i32.const 11020 i32.load - local.set $10 + local.set $8 loop $for-loop|0 - local.get $1 - local.get $10 + local.get $0 + local.get $8 i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $8 + local.get $11 i32.add - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $9 + local.get $12 i32.add i32.load f64.convert_i32_s f64.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -43503,53 +44702,51 @@ i32.const 62 i32.const 14784 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 $7 - local.get $1 + local.get $10 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - i32.const 0 - local.set $1 i32.const 11100 i32.load i32.const 3 i32.add - local.get $7 + local.get $10 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $7 + local.get $10 i32.load offset=4 i32.const 24 i32.add - local.set $8 + local.set $0 i32.const 11092 i32.load - local.set $9 + local.set $8 i32.const 11100 i32.load - local.set $10 - loop $for-loop|04 + local.set $11 + loop $for-loop|05 local.get $1 - local.get $10 + local.get $11 i32.lt_s if local.get $1 i32.const 3 i32.shl - local.get $8 + local.get $0 i32.add local.get $1 i32.const 2 i32.shl - local.get $9 + local.get $8 i32.add f32.load f64.promote_f32 @@ -43558,7 +44755,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|04 + br $for-loop|05 end end i32.const 10 @@ -43566,60 +44763,60 @@ i32.const 62 i32.const 14944 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 $7 - local.get $1 + local.get $10 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - local.get $4 + local.get $9 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $7 + local.get $10 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $7 + local.get $10 i32.load offset=4 i32.const 48 i32.add - local.set $1 - local.get $4 + local.set $0 + local.get $9 i32.load offset=4 - local.set $8 - local.get $4 + local.set $1 + local.get $9 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 - loop $for-loop|06 - local.get $3 - local.get $4 + local.set $8 + loop $for-loop|09 + local.get $5 + local.get $8 i32.lt_s if - local.get $3 + local.get $0 + local.get $5 i32.const 3 i32.shl local.tee $9 - local.get $1 i32.add - local.get $8 + local.get $1 local.get $9 i32.add i64.load f64.convert_i64_s f64.store - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|06 + local.set $5 + br $for-loop|09 end end i32.const 10 @@ -43627,103 +44824,101 @@ i32.const 62 i32.const 15056 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 $7 - local.get $1 + local.get $10 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> - i32.const 0 - local.set $1 - local.get $5 + local.get $6 i32.load offset=8 - local.get $7 + local.get $10 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $7 + local.get $10 i32.load offset=4 - local.set $3 - local.get $5 + local.set $0 + local.get $6 i32.load offset=4 - local.set $4 - local.get $5 + local.set $1 + local.get $6 i32.load offset=8 local.set $5 - loop $for-loop|08 - local.get $1 + loop $for-loop|013 + local.get $2 local.get $5 i32.lt_s if - local.get $1 + local.get $2 i32.const 3 i32.shl - local.get $3 + local.get $0 i32.add local.get $1 - local.get $4 + local.get $2 i32.add i32.load8_u f64.convert_i32_u f64.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 - br $for-loop|08 + local.set $2 + br $for-loop|013 end end - local.get $6 + local.get $7 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $7 + local.get $10 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $7 + local.get $10 i32.load offset=4 i32.const 32 i32.add - local.set $1 - local.get $6 + local.set $0 + local.get $7 i32.load offset=4 - local.set $3 - local.get $6 + local.set $1 + local.get $7 i32.load offset=8 i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|010 - local.get $0 - local.get $4 - i32.lt_s + local.set $2 + loop $for-loop|017 + local.get $2 + local.get $3 + i32.gt_s if - local.get $0 + local.get $3 i32.const 3 i32.shl - local.get $1 - i32.add local.get $0 + i32.add + local.get $3 i32.const 1 i32.shl - local.get $3 + local.get $1 i32.add i32.load16_s f64.convert_i32_s f64.store - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|010 + local.set $3 + br $for-loop|017 end end global.get $~lib/memory/__stack_pointer @@ -43733,13 +44928,13 @@ i32.load i32.const 7 i32.add - local.get $7 + local.get $10 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $7 + local.get $10 i32.load offset=4 i32.const 56 i32.add @@ -43749,28 +44944,28 @@ local.set $1 i32.const 11276 i32.load - local.set $3 - loop $for-loop|014 + local.set $2 + loop $for-loop|023 local.get $2 - local.get $3 - i32.lt_s + local.get $4 + i32.gt_s if - local.get $2 + local.get $4 i32.const 3 i32.shl local.get $0 i32.add local.get $1 - local.get $2 + local.get $4 i32.add i32.load8_s f64.convert_i32_s f64.store - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 - br $for-loop|014 + local.set $4 + br $for-loop|023 end end i32.const 10 @@ -43782,7 +44977,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $7 + local.get $10 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer @@ -43809,56 +45004,112 @@ (local $7 f64) (local $8 i32) (local $9 i32) - (local $10 i64) - (local $11 i32) + (local $10 i32) + (local $11 i64) (local $12 i32) - (local $13 i64) - (local $14 f32) - (local $15 f64) + (local $13 i32) + (local $14 i32) + (local $15 i64) + (local $16 i32) + (local $17 f32) + (local $18 f64) + (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 i64) + (local $61 i32) + (local $62 i32) + (local $63 i32) + (local $64 i64) + (local $65 i64) + (local $66 f32) + (local $67 f64) + (local $68 i32) + (local $69 i32) + (local $70 i32) + (local $71 i32) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner35 - block $folding-inner34 - block $folding-inner33 - block $folding-inner32 - block $folding-inner31 - block $folding-inner30 - block $folding-inner29 - block $folding-inner28 - block $folding-inner27 - block $folding-inner26 - block $folding-inner25 - block $folding-inner24 - block $folding-inner23 - block $folding-inner22 - block $folding-inner21 - block $folding-inner20 - block $folding-inner19 - block $folding-inner18 - block $folding-inner17 - block $folding-inner16 - block $folding-inner15 - block $folding-inner14 - block $folding-inner13 - block $folding-inner12 - block $folding-inner11 - block $folding-inner10 - block $folding-inner9 - block $folding-inner8 - block $folding-inner7 - block $folding-inner6 - block $folding-inner5 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 + block $folding-inner41 + block $folding-inner40 + block $folding-inner39 + block $folding-inner38 + block $folding-inner37 + block $folding-inner36 + block $folding-inner35 + block $folding-inner34 + block $folding-inner33 + block $folding-inner32 + block $folding-inner31 + block $folding-inner30 + block $folding-inner29 + block $folding-inner28 + block $folding-inner27 + block $folding-inner26 + block $folding-inner25 + block $folding-inner24 + block $folding-inner23 + block $folding-inner22 + block $folding-inner21 + block $folding-inner19 + block $folding-inner16 + block $folding-inner20 + block $folding-inner18 + block $folding-inner17 + block $folding-inner15 + block $folding-inner14 + block $folding-inner13 + block $folding-inner12 + block $folding-inner6 + block $folding-inner5 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -44252,29 +45503,29 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $3 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 1 i32.const 3 @@ -44288,7 +45539,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz @@ -44300,7 +45551,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 0 i32.const 0 i32.const 2147483647 @@ -44314,7 +45565,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz @@ -44326,7 +45577,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 1 i32.const 0 i32.const -3 @@ -44340,7 +45591,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz @@ -44352,7 +45603,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 2 i32.const -2 i32.const 2147483647 @@ -44366,7 +45617,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz @@ -44378,7 +45629,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 0 i32.const 1 i32.const 0 @@ -44392,7 +45643,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz @@ -44405,18 +45656,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int8Array#fill - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.ne @@ -44428,9 +45679,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load i32.sub i32.const 1 @@ -44443,7 +45694,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.ne @@ -44464,7 +45715,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz @@ -44485,7 +45736,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $3 local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz @@ -44500,58 +45751,58 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $6 i32.store offset=8 - local.get $4 + local.get $6 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 i32.load offset=4 - local.set $2 + local.set $3 i32.const 1 - local.get $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 1 i32.gt_u select local.set $0 i32.const 3 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 3 i32.gt_u select - local.set $1 + local.set $2 loop $for-loop|0 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.const 1 i32.store @@ -44571,7 +45822,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $6 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -44583,32 +45834,32 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $6 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 + local.set $2 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|01 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + 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|01 end end @@ -44621,7 +45872,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $6 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -44633,33 +45884,33 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $6 i32.load offset=4 - local.set $2 + local.set $3 i32.const 0 local.set $0 - local.get $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u i32.const 3 i32.sub - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select - local.set $1 + local.set $2 loop $for-loop|03 local.get $0 - local.get $1 + local.get $2 i32.lt_s if local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.const 1 i32.store @@ -44679,7 +45930,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $6 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -44691,10 +45942,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u @@ -44707,23 +45958,23 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 loop $for-loop|05 - 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 $3 i32.add i32.const 2 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 @@ -44736,7 +45987,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $6 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -44748,11 +45999,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $6 i32.load offset=4 - local.set $1 + local.set $2 i32.const 1 - local.get $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u @@ -44770,7 +46021,7 @@ local.get $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.const 0 i32.store @@ -44790,7 +46041,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $6 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -44803,42 +46054,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $3 + local.tee $4 i32.store offset=12 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 + local.set $2 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|09 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + 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|09 end end - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -44852,9 +46103,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load offset=4 - local.get $3 + local.get $4 i32.load i32.sub i32.const 4 @@ -44867,7 +46118,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load offset=8 i32.const 12 i32.ne @@ -44888,7 +46139,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -44909,7 +46160,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $6 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45157,16 +46408,16 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $2 + local.tee $3 i32.store local.get $0 i32.const 0 i32.const 3 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45177,7 +46428,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45190,7 +46441,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45201,9 +46452,9 @@ i32.const 3 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45214,7 +46465,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45227,7 +46478,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45238,9 +46489,9 @@ i32.const 2 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45251,7 +46502,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45264,7 +46515,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45275,9 +46526,9 @@ i32.const 2 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45288,7 +46539,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45301,7 +46552,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45312,9 +46563,9 @@ i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45325,7 +46576,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45338,7 +46589,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45349,9 +46600,9 @@ i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45362,7 +46613,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45375,7 +46626,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45386,9 +46637,9 @@ i32.const 2 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45399,7 +46650,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45412,7 +46663,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45423,9 +46674,9 @@ i32.const -2 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45436,7 +46687,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45449,7 +46700,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45460,9 +46711,9 @@ i32.const -2 i32.const -1 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45473,7 +46724,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45486,7 +46737,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45497,9 +46748,9 @@ i32.const -3 i32.const -2 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45510,7 +46761,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45523,7 +46774,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45534,9 +46785,9 @@ i32.const -3 i32.const -1 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45547,7 +46798,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45560,7 +46811,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45571,9 +46822,9 @@ i32.const -3 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=20 i32.const 5 i32.const 2 @@ -45584,7 +46835,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45599,36 +46850,36 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $3 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $1 + local.tee $2 i32.store offset=16 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -45642,9 +46893,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load i32.sub i32.const 4 @@ -45657,7 +46908,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=8 i32.const 12 i32.ne @@ -45670,7 +46921,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#slice @@ -45742,7 +46993,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#slice @@ -45801,14 +47052,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice local.tee $0 i32.store offset=24 local.get $0 - local.get $2 + local.get $3 i32.eq if i32.const 0 @@ -45822,7 +47073,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -45840,9 +47091,9 @@ local.get $0 i32.load i32.sub - local.get $2 + local.get $3 i32.load offset=4 - local.get $2 + local.get $3 i32.load i32.sub i32.ne @@ -45856,7 +47107,7 @@ end local.get $0 i32.load offset=8 - local.get $2 + local.get $3 i32.load offset=8 i32.ne if @@ -45874,7 +47125,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -45899,8 +47150,6 @@ global.get $~lib/memory/__stack_pointer i32.const 2896 i32.store offset=4 - i32.const 0 - local.set $0 local.get $4 i32.load offset=4 local.set $3 @@ -45908,33 +47157,33 @@ i32.load offset=8 local.set $2 loop $for-loop|010 - local.get $0 local.get $2 - i32.lt_s + local.get $10 + i32.gt_s if - local.get $0 local.get $3 + local.get $10 i32.add i32.load8_s - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $1 + local.get $53 local.get $0 + local.get $10 local.get $4 i32.const 2896 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $53 + local.get $10 i32.const 1 i32.add - local.set $0 + local.set $10 br $for-loop|010 end end - local.get $9 + local.get $53 i32.const 255 i32.and i32.const 6 @@ -45951,7 +47200,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -45976,44 +47225,40 @@ global.get $~lib/memory/__stack_pointer i32.const 2928 i32.store offset=4 - i32.const 0 - local.set $0 - i32.const 0 - local.set $9 local.get $4 i32.load offset=4 local.set $3 local.get $4 i32.load offset=8 local.set $2 - loop $for-loop|04 - local.get $0 + loop $for-loop|0511 local.get $2 - i32.lt_s + local.get $8 + i32.gt_s if - local.get $0 local.get $3 + local.get $8 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $1 + local.get $54 local.get $0 + local.get $8 local.get $4 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $54 + local.get $8 i32.const 1 i32.add - local.set $0 - br $for-loop|04 + local.set $8 + br $for-loop|0511 end end - local.get $9 + local.get $54 i32.const 255 i32.and i32.const 6 @@ -46030,7 +47275,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46055,44 +47300,40 @@ global.get $~lib/memory/__stack_pointer i32.const 2960 i32.store offset=4 - i32.const 0 - local.set $0 - i32.const 0 - local.set $9 local.get $4 i32.load offset=4 local.set $3 local.get $4 i32.load offset=8 local.set $2 - loop $for-loop|08 - local.get $0 + loop $for-loop|013 local.get $2 - i32.lt_s + local.get $9 + i32.gt_s if - local.get $0 local.get $3 + local.get $9 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $1 + local.get $55 local.get $0 + local.get $9 local.get $4 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $55 + local.get $9 i32.const 1 i32.add - local.set $0 - br $for-loop|08 + local.set $9 + br $for-loop|013 end end - local.get $9 + local.get $55 i32.const 255 i32.and i32.const 6 @@ -46109,7 +47350,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46134,10 +47375,6 @@ global.get $~lib/memory/__stack_pointer i32.const 2992 i32.store offset=4 - i32.const 0 - local.set $0 - i32.const 0 - local.set $9 local.get $4 i32.load offset=4 local.set $3 @@ -46146,36 +47383,36 @@ i32.const 1 i32.shr_u local.set $2 - loop $for-loop|01011 - local.get $0 + loop $for-loop|017 local.get $2 - i32.lt_s + local.get $12 + i32.gt_s if - local.get $0 + local.get $12 i32.const 1 i32.shl local.get $3 i32.add i32.load16_s - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $1 + local.get $56 local.get $0 + local.get $12 local.get $4 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $56 + local.get $12 i32.const 1 i32.add - local.set $0 - br $for-loop|01011 + local.set $12 + br $for-loop|017 end end - local.get $9 + local.get $56 i32.const 65535 i32.and i32.const 6 @@ -46192,7 +47429,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46217,10 +47454,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3024 i32.store offset=4 - i32.const 0 - local.set $0 - i32.const 0 - local.set $9 local.get $4 i32.load offset=4 local.set $3 @@ -46229,36 +47462,36 @@ i32.const 1 i32.shr_u local.set $2 - loop $for-loop|013 - local.get $0 + loop $for-loop|022 local.get $2 - i32.lt_s + local.get $19 + i32.gt_s if - local.get $0 + local.get $19 i32.const 1 i32.shl local.get $3 i32.add i32.load16_u - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $1 + local.get $57 local.get $0 + local.get $19 local.get $4 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $57 + local.get $19 i32.const 1 i32.add - local.set $0 - br $for-loop|013 + local.set $19 + br $for-loop|022 end end - local.get $9 + local.get $57 i32.const 65535 i32.and i32.const 6 @@ -46275,7 +47508,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46300,10 +47533,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3056 i32.store offset=4 - i32.const 0 - local.set $0 - i32.const 0 - local.set $9 local.get $4 i32.load offset=4 local.set $3 @@ -46312,36 +47541,36 @@ i32.const 2 i32.shr_u local.set $2 - loop $for-loop|016 - local.get $0 + loop $for-loop|027 local.get $2 - i32.lt_s + local.get $20 + i32.gt_s if - local.get $0 + local.get $20 i32.const 2 i32.shl local.get $3 i32.add i32.load - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $1 + local.get $58 local.get $0 + local.get $20 local.get $4 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $58 + local.get $20 i32.const 1 i32.add - local.set $0 - br $for-loop|016 + local.set $20 + br $for-loop|027 end end - local.get $9 + local.get $58 i32.const 6 i32.ne br_if $folding-inner1 @@ -46356,7 +47585,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46381,10 +47610,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3088 i32.store offset=4 - i32.const 0 - local.set $0 - i32.const 0 - local.set $9 local.get $4 i32.load offset=4 local.set $3 @@ -46393,36 +47618,36 @@ i32.const 2 i32.shr_u local.set $2 - loop $for-loop|021 - local.get $0 + loop $for-loop|032 local.get $2 - i32.lt_s + local.get $32 + i32.gt_s if - local.get $0 + local.get $32 i32.const 2 i32.shl local.get $3 i32.add i32.load - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $1 + local.get $59 local.get $0 + local.get $32 local.get $4 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $9 - local.get $0 + local.set $59 + local.get $32 i32.const 1 i32.add - local.set $0 - br $for-loop|021 + local.set $32 + br $for-loop|032 end end - local.get $9 + local.get $59 i32.const 6 i32.ne br_if $folding-inner1 @@ -46437,7 +47662,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46462,8 +47687,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3120 i32.store offset=4 - i32.const 0 - local.set $0 local.get $3 i32.load offset=4 local.set $2 @@ -46471,37 +47694,37 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|024 + local.set $0 + loop $for-loop|037 local.get $0 - local.get $1 - i32.lt_s + local.get $33 + i32.gt_s if - local.get $0 + local.get $33 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $13 - local.get $10 - local.get $0 + local.get $15 + local.get $11 + local.get $33 local.get $3 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $0 + local.set $15 + local.get $33 i32.const 1 i32.add - local.set $0 - br $for-loop|024 + local.set $33 + br $for-loop|037 end end - local.get $13 + local.get $15 i64.const 6 i64.ne br_if $folding-inner1 @@ -46516,7 +47739,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46541,10 +47764,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3152 i32.store offset=4 - i32.const 0 - local.set $0 - i64.const 0 - local.set $13 local.get $3 i32.load offset=4 local.set $2 @@ -46552,37 +47771,37 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|027 + local.set $0 + loop $for-loop|042 local.get $0 - local.get $1 - i32.lt_s + local.get $34 + i32.gt_s if - local.get $0 + local.get $34 i32.const 3 i32.shl local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $13 - local.get $10 - local.get $0 + local.get $60 + local.get $11 + local.get $34 local.get $3 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $0 + local.set $60 + local.get $34 i32.const 1 i32.add - local.set $0 - br $for-loop|027 + local.set $34 + br $for-loop|042 end end - local.get $13 + local.get $60 i64.const 6 i64.ne br_if $folding-inner1 @@ -46597,7 +47816,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46622,8 +47841,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3184 i32.store offset=4 - i32.const 0 - local.set $0 local.get $3 i32.load offset=4 local.set $2 @@ -46631,13 +47848,13 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|030 + local.set $0 + loop $for-loop|047 local.get $0 - local.get $1 - i32.lt_s + local.get $35 + i32.gt_s if - local.get $0 + local.get $35 i32.const 2 i32.shl local.get $2 @@ -46646,22 +47863,22 @@ local.set $5 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $17 local.get $5 - local.get $0 + local.get $35 local.get $3 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $14 - local.get $0 + local.set $17 + local.get $35 i32.const 1 i32.add - local.set $0 - br $for-loop|030 + local.set $35 + br $for-loop|047 end end - local.get $14 + local.get $17 f32.const 6 f32.ne br_if $folding-inner1 @@ -46676,7 +47893,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46701,8 +47918,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3216 i32.store offset=4 - i32.const 0 - local.set $0 local.get $3 i32.load offset=4 local.set $2 @@ -46710,13 +47925,13 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|033 + local.set $0 + loop $for-loop|052 local.get $0 - local.get $1 - i32.lt_s + local.get $36 + i32.gt_s if - local.get $0 + local.get $36 i32.const 3 i32.shl local.get $2 @@ -46725,22 +47940,22 @@ local.set $7 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $18 local.get $7 - local.get $0 + local.get $36 local.get $3 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $15 - local.get $0 + local.set $18 + local.get $36 i32.const 1 i32.add - local.set $0 - br $for-loop|033 + local.set $36 + br $for-loop|052 end end - local.get $15 + local.get $18 f64.const 6 f64.ne br_if $folding-inner1 @@ -46755,7 +47970,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46806,7 +48021,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46857,7 +48072,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46908,7 +48123,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -46959,7 +48174,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47010,7 +48225,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47061,7 +48276,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47112,7 +48327,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47163,7 +48378,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47214,7 +48429,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47265,7 +48480,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47316,7 +48531,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47341,8 +48556,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3248 i32.store offset=4 - i32.const 0 - local.set $0 local.get $4 i32.load offset=4 local.set $3 @@ -47350,35 +48563,35 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $1 - loop $for-loop|039 - local.get $1 + local.set $0 + loop $for-loop|059 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_s local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 + local.get $61 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $61 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|039 + local.set $0 + br $for-loop|059 end end - local.get $0 + local.get $61 i32.const 255 i32.and i32.const 6 @@ -47395,7 +48608,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47420,8 +48633,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3280 i32.store offset=4 - i32.const 0 - local.set $0 local.get $4 i32.load offset=4 local.set $3 @@ -47429,35 +48640,35 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $1 - loop $for-loop|042 - local.get $1 + local.set $0 + loop $for-loop|064 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_u local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 + local.get $62 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $62 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|042 + local.set $0 + br $for-loop|064 end end - local.get $0 + local.get $62 i32.const 255 i32.and i32.const 6 @@ -47474,7 +48685,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47499,8 +48710,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3312 i32.store offset=4 - i32.const 0 - local.set $0 local.get $4 i32.load offset=4 local.set $3 @@ -47508,35 +48717,35 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $1 - loop $for-loop|046 - local.get $1 + local.set $0 + loop $for-loop|071 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $3 i32.add i32.load8_u local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 + local.get $63 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $63 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|046 + local.set $0 + br $for-loop|071 end end - local.get $0 + local.get $63 i32.const 255 i32.and i32.const 6 @@ -47553,7 +48762,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47578,8 +48787,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3344 i32.store offset=4 - i32.const 0 - local.set $0 local.get $4 i32.load offset=4 local.set $3 @@ -47589,13 +48796,13 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 - loop $for-loop|049 - local.get $1 + local.set $0 + loop $for-loop|076 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 1 i32.shl local.get $3 @@ -47604,22 +48811,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 + local.get $68 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $68 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|049 + local.set $0 + br $for-loop|076 end end - local.get $0 + local.get $68 i32.const 65535 i32.and i32.const 6 @@ -47636,7 +48843,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47661,8 +48868,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3376 i32.store offset=4 - i32.const 0 - local.set $0 local.get $4 i32.load offset=4 local.set $3 @@ -47672,13 +48877,13 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 - loop $for-loop|052 - local.get $1 + local.set $0 + loop $for-loop|081 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 1 i32.shl local.get $3 @@ -47687,22 +48892,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 + local.get $69 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $69 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|052 + local.set $0 + br $for-loop|081 end end - local.get $0 + local.get $69 i32.const 65535 i32.and i32.const 6 @@ -47719,7 +48924,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47744,8 +48949,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3408 i32.store offset=4 - i32.const 0 - local.set $0 local.get $4 i32.load offset=4 local.set $3 @@ -47755,13 +48958,13 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 - loop $for-loop|055 - local.get $1 + local.set $0 + loop $for-loop|086 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $3 @@ -47770,22 +48973,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 + local.get $70 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $70 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|055 + local.set $0 + br $for-loop|086 end end - local.get $0 + local.get $70 i32.const 6 i32.ne br_if $folding-inner5 @@ -47800,7 +49003,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47825,8 +49028,6 @@ global.get $~lib/memory/__stack_pointer i32.const 3440 i32.store offset=4 - i32.const 0 - local.set $0 local.get $4 i32.load offset=4 local.set $3 @@ -47836,13 +49037,13 @@ i32.shr_u i32.const 1 i32.sub - local.set $1 - loop $for-loop|058 - local.get $1 + local.set $0 + loop $for-loop|091 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $3 @@ -47851,22 +49052,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 + local.get $71 local.get $2 - local.get $1 + local.get $0 local.get $4 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $71 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|058 + local.set $0 + br $for-loop|091 end end - local.get $0 + local.get $71 i32.const 6 i32.ne br_if $folding-inner5 @@ -47881,7 +49082,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47889,65 +49090,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3472 i32.store offset=4 - i64.const 0 - local.set $13 - local.get $2 + local.get $3 i32.load offset=4 - local.set $0 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $1 - loop $for-loop|061 - local.get $1 + local.set $0 + loop $for-loop|096 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $13 - local.get $10 - local.get $1 - local.get $2 + local.get $64 + local.get $11 + local.get $0 + local.get $3 i32.const 3472 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $1 + local.set $64 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|061 + local.set $0 + br $for-loop|096 end end - local.get $13 + local.get $64 i64.const 6 i64.ne br_if $folding-inner5 @@ -47962,7 +49161,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47970,65 +49169,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3504 - i32.store offset=4 - i64.const 0 - local.set $13 - local.get $2 + i32.store offset=4 + local.get $3 i32.load offset=4 - local.set $0 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $1 - loop $for-loop|064 - local.get $1 + local.set $0 + loop $for-loop|0101 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add i64.load - local.set $10 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $13 - local.get $10 - local.get $1 - local.get $2 + local.get $65 + local.get $11 + local.get $0 + local.get $3 i32.const 3504 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $1 + local.set $65 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|064 + local.set $0 + br $for-loop|0101 end end - local.get $13 + local.get $65 i64.const 6 i64.ne br_if $folding-inner5 @@ -48043,7 +49240,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48051,65 +49248,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $3 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $3 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 3536 i32.store offset=4 - f32.const 0 - local.set $14 - local.get $2 + local.get $3 i32.load offset=4 - local.set $0 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $1 - loop $for-loop|067 - local.get $1 + local.set $0 + loop $for-loop|0106 + 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 $2 i32.add f32.load local.set $5 i32.const 4 global.set $~argumentsLength - local.get $14 + local.get $66 local.get $5 - local.get $1 - local.get $2 + local.get $0 + local.get $3 i32.const 3536 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $14 - local.get $1 + local.set $66 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|067 + local.set $0 + br $for-loop|0106 end end - local.get $14 + local.get $66 f32.const 6 f32.ne br_if $folding-inner5 @@ -48124,7 +49319,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48132,65 +49327,63 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $3 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $3 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 3568 i32.store offset=4 - f64.const 0 - local.set $15 - local.get $2 + local.get $3 i32.load offset=4 - local.set $0 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $1 - loop $for-loop|070 - local.get $1 + local.set $0 + loop $for-loop|0111 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add f64.load local.set $7 i32.const 4 global.set $~argumentsLength - local.get $15 + local.get $67 local.get $7 - local.get $1 - local.get $2 + local.get $0 + local.get $3 i32.const 3568 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $15 - local.get $1 + local.set $67 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|070 + local.set $0 + br $for-loop|0111 end end - local.get $15 + local.get $67 f64.const 6 f64.ne br_if $folding-inner5 @@ -48198,6 +49391,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48205,7 +49400,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48216,128 +49411,128 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $8 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $8 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3600 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $8 + local.get $9 i32.load offset=8 - local.set $4 - local.get $8 + local.set $6 + local.get $9 i32.load offset=4 - local.set $3 + local.set $4 local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - loop $for-loop|012 - local.get $4 - local.get $12 + loop $for-loop|02 + local.get $6 + local.get $10 i32.gt_s if - local.get $3 - local.get $12 + local.get $4 + local.get $10 i32.add i32.load8_s local.set $0 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $12 + local.get $2 + local.get $10 i32.add local.get $0 - local.get $12 - local.get $8 + local.get $10 + local.get $9 i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $12 + local.get $10 i32.const 1 i32.add - local.set $12 - br $for-loop|012 + local.set $10 + br $for-loop|02 end end + local.get $3 local.get $2 - local.get $1 i32.store - local.get $1 + local.get $2 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 $2 - local.get $4 + local.get $3 + local.get $6 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 $3 i32.store offset=8 - local.get $2 + local.get $3 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $2 + br_if $folding-inner16 + local.get $3 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $2 + br_if $folding-inner19 + local.get $3 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48345,7 +49540,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48356,128 +49551,128 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $8 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $8 + local.get $9 i32.load offset=8 - local.set $4 - local.get $8 + local.set $6 + local.get $9 i32.load offset=4 - local.set $3 + local.set $4 local.get $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - loop $for-loop|014 - local.get $4 - local.get $12 + loop $for-loop|04 + local.get $6 + local.get $10 i32.gt_s if - local.get $3 - local.get $12 + local.get $4 + local.get $10 i32.add i32.load8_u local.set $0 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $12 + local.get $2 + local.get $10 i32.add local.get $0 - local.get $12 - local.get $8 + local.get $10 + local.get $9 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $12 + local.get $10 i32.const 1 i32.add - local.set $12 - br $for-loop|014 + local.set $10 + br $for-loop|04 end end + local.get $3 local.get $2 - local.get $1 i32.store - local.get $1 + local.get $2 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 $2 - local.get $4 + local.get $3 + local.get $6 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 $3 i32.store offset=8 - local.get $2 + local.get $3 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $2 + br_if $folding-inner16 + local.get $3 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $2 + br_if $folding-inner19 + local.get $3 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48485,7 +49680,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48496,128 +49691,126 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $8 + local.get $9 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $8 + local.get $9 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3664 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $8 + local.get $9 i32.load offset=8 - local.set $4 - local.get $8 + local.set $6 + local.get $9 i32.load offset=4 - local.set $3 + local.set $4 local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - loop $for-loop|015 - local.get $4 - local.get $12 + loop $for-loop|08 + local.get $6 + local.get $10 i32.gt_s if - local.get $3 - local.get $12 + local.get $4 + local.get $10 i32.add i32.load8_u local.set $0 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $12 + local.get $2 + local.get $10 i32.add local.get $0 - local.get $12 - local.get $8 + local.get $10 + local.get $9 i32.const 3664 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $12 + local.get $10 i32.const 1 i32.add - local.set $12 - br $for-loop|015 + local.set $10 + br $for-loop|08 end end + local.get $3 local.get $2 - local.get $1 i32.store - local.get $1 + local.get $2 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 $2 - local.get $4 + local.get $3 + local.get $6 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 $3 i32.store offset=8 - local.get $2 + local.get $3 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $2 + br_if $folding-inner16 + local.get $3 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $2 + br_if $folding-inner19 + local.get $3 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 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 @@ -48625,7 +49818,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48636,136 +49829,136 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $11 + local.tee $12 i32.store - local.get $11 + local.get $12 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $11 + local.get $12 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $11 + local.get $12 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3696 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $11 + local.get $12 i32.load offset=8 i32.const 1 i32.shr_u - local.set $8 - local.get $11 + local.set $9 + local.get $12 i32.load offset=4 - local.set $6 + local.set $8 local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.const 1 i32.shl - local.tee $3 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 - loop $for-loop|017 - local.get $8 - local.get $12 + loop $for-loop|06 + local.get $9 + local.get $14 i32.gt_s if - local.get $6 - local.get $12 + local.get $8 + local.get $14 i32.const 1 i32.shl - local.tee $1 + local.tee $2 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 $14 local.get $12 - local.get $11 i32.const 3696 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $12 + local.get $14 i32.const 1 i32.add - local.set $12 - br $for-loop|017 + local.set $14 + br $for-loop|06 end end - local.get $4 - local.get $2 + local.get $6 + local.get $3 i32.store - local.get $2 + local.get $3 if - local.get $4 - local.get $2 + local.get $6 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $6 + local.get $3 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 $4 + local.get $6 i32.store offset=8 - local.get $4 + local.get $6 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $4 + br_if $folding-inner16 + local.get $6 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $4 + br_if $folding-inner19 + local.get $6 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48773,7 +49966,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48784,136 +49977,136 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $11 + local.tee $12 i32.store - local.get $11 + local.get $12 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $11 + local.get $12 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $11 + local.get $12 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3728 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $11 + local.get $12 i32.load offset=8 i32.const 1 i32.shr_u - local.set $8 - local.get $11 + local.set $9 + local.get $12 i32.load offset=4 - local.set $6 + local.set $8 local.get $0 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.const 1 i32.shl - local.tee $3 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 - loop $for-loop|018 - local.get $8 - local.get $12 + loop $for-loop|011 + local.get $9 + local.get $14 i32.gt_s if - local.get $6 - local.get $12 + local.get $8 + local.get $14 i32.const 1 i32.shl - local.tee $1 + local.tee $2 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 $14 local.get $12 - local.get $11 i32.const 3728 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $12 + local.get $14 i32.const 1 i32.add - local.set $12 - br $for-loop|018 + local.set $14 + br $for-loop|011 end end - local.get $4 - local.get $2 + local.get $6 + local.get $3 i32.store - local.get $2 + local.get $3 if - local.get $4 - local.get $2 + local.get $6 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $6 + local.get $3 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 $4 + local.get $6 i32.store offset=8 - local.get $4 + local.get $6 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $4 + br_if $folding-inner16 + local.get $6 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $4 + br_if $folding-inner19 + local.get $6 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -48921,7 +50114,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48932,136 +50125,136 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $11 + local.tee $12 i32.store - local.get $11 + local.get $12 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $11 + local.get $12 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $11 + local.get $12 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3760 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $11 + local.get $12 i32.load offset=8 i32.const 2 i32.shr_u - local.set $8 - local.get $11 + local.set $9 + local.get $12 i32.load offset=4 - local.set $6 + local.set $8 local.get $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.const 2 i32.shl - local.tee $3 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 - loop $for-loop|019 - local.get $8 - local.get $12 + loop $for-loop|014 + local.get $9 + local.get $14 i32.gt_s if - local.get $6 - local.get $12 + local.get $8 + local.get $14 i32.const 2 i32.shl - local.tee $1 + local.tee $2 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 $14 local.get $12 - local.get $11 i32.const 3760 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $12 + local.get $14 i32.const 1 i32.add - local.set $12 - br $for-loop|019 + local.set $14 + br $for-loop|014 end end - local.get $4 - local.get $2 + local.get $6 + local.get $3 i32.store - local.get $2 + local.get $3 if - local.get $4 - local.get $2 + local.get $6 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $6 + local.get $3 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 $4 + local.get $6 i32.store offset=8 - local.get $4 + local.get $6 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $4 + br_if $folding-inner16 + local.get $6 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $4 + br_if $folding-inner19 + local.get $6 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49069,7 +50262,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49080,136 +50273,136 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $11 + local.tee $12 i32.store - local.get $11 + local.get $12 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $11 + local.get $12 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $11 + local.get $12 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3792 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $11 + local.get $12 i32.load offset=8 i32.const 2 i32.shr_u - local.set $8 - local.get $11 + local.set $9 + local.get $12 i32.load offset=4 - local.set $6 + local.set $8 local.get $0 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.const 2 i32.shl - local.tee $3 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 - loop $for-loop|020 - local.get $8 - local.get $12 + loop $for-loop|016 + local.get $9 + local.get $14 i32.gt_s if - local.get $6 - local.get $12 + local.get $8 + local.get $14 i32.const 2 i32.shl - local.tee $1 + local.tee $2 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 $14 local.get $12 - local.get $11 i32.const 3792 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $12 + local.get $14 i32.const 1 i32.add - local.set $12 - br $for-loop|020 + local.set $14 + br $for-loop|016 end end - local.get $4 - local.get $2 + local.get $6 + local.get $3 i32.store - local.get $2 + local.get $3 if - local.get $4 - local.get $2 + local.get $6 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $2 + local.get $6 + local.get $3 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 $4 + local.get $6 i32.store offset=8 - local.get $4 + local.get $6 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $4 + br_if $folding-inner16 + local.get $6 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $4 + br_if $folding-inner19 + local.get $6 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49217,7 +50410,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49228,136 +50421,136 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $9 + local.tee $10 i32.store - local.get $9 + local.get $10 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $10 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $9 + local.get $10 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3824 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $10 i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 - local.get $9 + local.set $8 + local.get $10 i32.load offset=4 - local.set $4 + local.set $6 local.get $0 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.const 3 i32.shl - local.tee $2 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - loop $for-loop|022 - local.get $6 - local.get $12 + loop $for-loop|018 + local.get $8 + local.get $14 i32.gt_s if - local.get $4 - local.get $12 + local.get $6 + local.get $14 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 $1 + local.get $2 i32.add + local.get $11 + local.get $14 local.get $10 - local.get $12 - local.get $9 i32.const 3824 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $12 + local.get $14 i32.const 1 i32.add - local.set $12 - br $for-loop|022 + local.set $14 + br $for-loop|018 end end - local.get $3 - local.get $1 + local.get $4 + local.get $2 i32.store - local.get $1 + local.get $2 if - local.get $3 - local.get $1 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 - local.get $1 + local.get $4 + local.get $2 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 $3 + local.get $4 i32.store offset=8 - local.get $3 + local.get $4 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner6 - local.get $3 + br_if $folding-inner16 + local.get $4 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 i64.ne - br_if $folding-inner7 - local.get $3 + br_if $folding-inner19 + local.get $4 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 9 i64.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49365,7 +50558,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49376,136 +50569,136 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $9 + local.tee $10 i32.store - local.get $9 + local.get $10 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $9 + local.get $10 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $9 + local.get $10 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3856 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $10 i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 - local.get $9 + local.set $8 + local.get $10 i32.load offset=4 - local.set $4 + local.set $6 local.get $0 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.const 3 i32.shl - local.tee $2 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - loop $for-loop|023 - local.get $6 - local.get $12 + loop $for-loop|020 + local.get $8 + local.get $14 i32.gt_s if - local.get $4 - local.get $12 + local.get $6 + local.get $14 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 $1 + local.get $2 i32.add + local.get $11 + local.get $14 local.get $10 - local.get $12 - local.get $9 i32.const 3856 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $12 + local.get $14 i32.const 1 i32.add - local.set $12 - br $for-loop|023 + local.set $14 + br $for-loop|020 end end - local.get $3 - local.get $1 + local.get $4 + local.get $2 i32.store - local.get $1 + local.get $2 if - local.get $3 - local.get $1 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 - local.get $1 + local.get $4 + local.get $2 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 $3 + local.get $4 i32.store offset=8 - local.get $3 + local.get $4 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner6 - local.get $3 + br_if $folding-inner16 + local.get $4 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 i64.ne - br_if $folding-inner7 - local.get $3 + br_if $folding-inner19 + local.get $4 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 9 i64.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49513,7 +50706,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49524,66 +50717,66 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $9 + local.tee $10 i32.store - local.get $9 + local.get $10 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $9 + local.get $10 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $9 + local.get $10 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3888 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $10 i32.load offset=8 i32.const 2 i32.shr_u - local.set $6 - local.get $9 + local.set $8 + local.get $10 i32.load offset=4 - local.set $4 + local.set $6 local.get $0 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.const 2 i32.shl - local.tee $2 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - loop $for-loop|025 - local.get $6 - local.get $12 + loop $for-loop|023 + local.get $8 + local.get $14 i32.gt_s if - local.get $4 - local.get $12 + local.get $6 + local.get $14 i32.const 2 i32.shl local.tee $0 @@ -49593,67 +50786,67 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $1 + local.get $2 i32.add local.get $5 - local.get $12 - local.get $9 + local.get $14 + local.get $10 i32.const 3888 i32.load call_indirect $0 (type $f32_i32_i32_=>_f32) f32.store - local.get $12 + local.get $14 i32.const 1 i32.add - local.set $12 - br $for-loop|025 + local.set $14 + br $for-loop|023 end end - local.get $3 - local.get $1 + local.get $4 + local.get $2 i32.store - local.get $1 + local.get $2 if - local.get $3 - local.get $1 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 - local.get $1 + local.get $4 + local.get $2 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 $3 + local.get $4 i32.store offset=8 - local.get $3 + local.get $4 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner6 - local.get $3 + br_if $folding-inner16 + local.get $4 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 f32.ne - br_if $folding-inner7 - local.get $3 + br_if $folding-inner19 + local.get $4 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 9 f32.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49661,7 +50854,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49672,66 +50865,66 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $9 + local.tee $10 i32.store - local.get $9 + local.get $10 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $9 + local.get $10 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $9 + local.get $10 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 3920 i32.store offset=4 global.get $~lib/memory/__stack_pointer - 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 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $10 i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 - local.get $9 + local.set $8 + local.get $10 i32.load offset=4 - local.set $4 + local.set $6 local.get $0 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $8 i32.const 3 i32.shl - local.tee $2 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - loop $for-loop|026 - local.get $6 - local.get $12 + loop $for-loop|025 + local.get $8 + local.get $14 i32.gt_s if - local.get $4 - local.get $12 + local.get $6 + local.get $14 i32.const 3 i32.shl local.tee $0 @@ -49741,61 +50934,61 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $1 + local.get $2 i32.add local.get $7 - local.get $12 - local.get $9 + local.get $14 + local.get $10 i32.const 3920 i32.load call_indirect $0 (type $f64_i32_i32_=>_f64) f64.store - local.get $12 + local.get $14 i32.const 1 i32.add - local.set $12 - br $for-loop|026 + local.set $14 + br $for-loop|025 end end - local.get $3 - local.get $1 + local.get $4 + local.get $2 i32.store - local.get $1 + local.get $2 if - local.get $3 - local.get $1 + local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 - local.get $1 + local.get $4 + local.get $2 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 $3 + local.get $4 i32.store offset=8 - local.get $3 + local.get $4 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner6 - local.get $3 + br_if $folding-inner16 + local.get $4 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.ne - br_if $folding-inner7 - local.get $3 + br_if $folding-inner19 + local.get $4 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 9 f64.ne - br_if $folding-inner8 + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -49812,7 +51005,7 @@ call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -49820,89 +51013,87 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 - local.set $2 - loop $for-loop|028 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|012 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.add i32.load8_s - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|028 + local.set $0 + br $for-loop|012 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4336 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner23 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 local.set $2 - loop $for-loop|0329 - local.get $1 + loop $for-loop|0410 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 local.get $3 + local.get $13 i32.add i32.load8_s local.set $0 @@ -49910,29 +51101,31 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0329 + local.set $13 + br $for-loop|0410 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -49940,89 +51133,87 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 - local.set $2 - loop $for-loop|031 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|01426 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.add i32.load8_u - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|031 + local.set $0 + br $for-loop|01426 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4400 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner23 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 local.set $2 - loop $for-loop|0332 - local.get $1 + loop $for-loop|0415 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 local.get $3 + local.get $13 i32.add i32.load8_u local.set $0 @@ -50030,29 +51221,31 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0332 + local.set $13 + br $for-loop|0415 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50060,89 +51253,87 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $6 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.033 (result i32) - local.get $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 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 - local.set $2 - loop $for-loop|034 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|01827 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.add i32.load8_u - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 i32.const 4432 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.033 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.016 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|034 + local.set $0 + br $for-loop|01827 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store offset=4 - i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0135 (result i32) - local.get $4 + br_if $folding-inner23 + 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 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 local.set $2 - loop $for-loop|0336 - local.get $1 + loop $for-loop|0420 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 local.get $3 + local.get $13 i32.add i32.load8_u local.set $0 @@ -50150,29 +51341,31 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 i32.const 4464 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0135 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0119 drop - local.get $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0336 + local.set $13 + br $for-loop|0420 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50180,94 +51373,92 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|037 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|021 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_s - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|037 + local.set $0 + br $for-loop|021 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner23 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 - loop $for-loop|0338 - local.get $1 + loop $for-loop|0422 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 + local.get $13 i32.const 1 i32.shl local.get $3 @@ -50278,29 +51469,31 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0338 + local.set $13 + br $for-loop|0422 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50308,94 +51501,92 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|040 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|02328 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|040 + local.set $0 + br $for-loop|02328 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner23 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 - loop $for-loop|0341 - local.get $1 + loop $for-loop|0424 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 + local.get $13 i32.const 1 i32.shl local.get $3 @@ -50406,29 +51597,31 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0341 + local.set $13 + br $for-loop|0424 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50436,94 +51629,92 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|043 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|02529 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|043 + local.set $0 + br $for-loop|02529 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner23 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 - loop $for-loop|0344 - local.get $1 + loop $for-loop|0426 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 + local.get $13 i32.const 2 i32.shl local.get $3 @@ -50534,29 +51725,31 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0344 + local.set $13 + br $for-loop|0426 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50564,94 +51757,92 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|045 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|028 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|045 + local.set $0 + br $for-loop|028 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4720 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner23 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 - loop $for-loop|0346 - local.get $1 + loop $for-loop|0429 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 + local.get $13 i32.const 2 i32.shl local.get $3 @@ -50662,29 +51853,31 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0346 + local.set $13 + br $for-loop|0429 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50692,127 +51885,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $4 i32.const 1 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $4 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) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4752 + i32.store offset=4 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|047 + local.set $2 + loop $for-loop|030 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $1 - local.get $3 + local.get $11 + local.get $0 + local.get $4 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|047 + local.set $0 + br $for-loop|030 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4784 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner23 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4784 + i32.store offset=4 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0348 + loop $for-loop|0431 local.get $0 - local.get $1 + local.get $13 i32.gt_s if - local.get $1 + local.get $13 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 $1 - local.get $3 + local.get $11 + local.get $13 + local.get $4 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0348 + local.set $13 + br $for-loop|0431 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50820,127 +52013,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $4 i32.const 1 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $4 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) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4816 + i32.store offset=4 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|050 + local.set $2 + loop $for-loop|033 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $1 - local.get $3 + local.get $11 + local.get $0 + local.get $4 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|050 + local.set $0 + br $for-loop|033 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4848 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner23 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4848 + i32.store offset=4 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0351 + loop $for-loop|0434 local.get $0 - local.get $1 + local.get $13 i32.gt_s if - local.get $1 + local.get $13 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 $1 - local.get $3 + local.get $11 + local.get $13 + local.get $4 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0351 + local.set $13 + br $for-loop|0434 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50948,49 +52141,49 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $4 i32.const 1 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $4 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) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store offset=4 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 - loop $for-loop|053 + local.set $2 + loop $for-loop|035 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load local.set $5 @@ -50998,44 +52191,42 @@ global.set $~argumentsLength i32.const 1 local.get $5 - local.get $1 - local.get $3 + local.get $0 + local.get $4 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|053 + local.set $0 + br $for-loop|035 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4912 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner23 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4912 + i32.store offset=4 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 - loop $for-loop|0354 + loop $for-loop|0436 local.get $0 - local.get $1 + local.get $13 i32.gt_s if - local.get $1 + local.get $13 i32.const 2 i32.shl local.get $2 @@ -51046,29 +52237,31 @@ global.set $~argumentsLength i32.const 1 local.get $5 - local.get $1 - local.get $3 + local.get $13 + local.get $4 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0354 + local.set $13 + br $for-loop|0436 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51076,49 +52269,49 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $4 i32.const 1 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $4 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) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|056 + local.set $2 + loop $for-loop|038 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load local.set $7 @@ -51126,44 +52319,42 @@ global.set $~argumentsLength i32.const 1 local.get $7 - local.get $1 - local.get $3 + local.get $0 + local.get $4 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|056 + local.set $0 + br $for-loop|038 end end i32.const 0 end i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner23 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=4 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|0357 + loop $for-loop|0439 local.get $0 - local.get $1 + local.get $13 i32.gt_s if - local.get $1 + local.get $13 i32.const 3 i32.shl local.get $2 @@ -51174,29 +52365,31 @@ global.set $~argumentsLength i32.const 1 local.get $7 - local.get $1 - local.get $3 + local.get $13 + local.get $4 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|0357 + local.set $13 + br $for-loop|0439 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51204,51 +52397,51 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $6 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 $4 + local.get $6 i32.load offset=4 - local.set $3 - local.get $4 + 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.0 - loop $for-loop|059 + loop $for-loop|040 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 - local.get $3 + local.get $4 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $6 i32.const 5008 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51257,7 +52450,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|059 + br $for-loop|040 end end i32.const -1 @@ -51266,56 +52459,56 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5040 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $4 + local.get $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - loop $for-loop|0360 - local.get $0 + loop $for-loop|0441 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 local.get $3 + local.get $13 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $13 + 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 $0 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0360 + local.set $13 + br $for-loop|0441 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51323,51 +52516,51 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $6 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 $4 + local.get $6 i32.load offset=4 - local.set $3 - local.get $4 + 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.0 - loop $for-loop|062 + loop $for-loop|043 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 - local.get $3 + local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $6 i32.const 5072 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51376,7 +52569,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|062 + br $for-loop|043 end end i32.const -1 @@ -51385,56 +52578,56 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5104 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $4 + local.get $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - loop $for-loop|0363 - local.get $0 + loop $for-loop|0444 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 local.get $3 + local.get $13 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $13 + 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 $0 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0363 + local.set $13 + br $for-loop|0444 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51442,60 +52635,60 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $6 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $6 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 $4 + local.get $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.064 - loop $for-loop|065 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.045 + loop $for-loop|046 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 - local.get $3 + local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + 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.064 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.045 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|065 + br $for-loop|046 end end i32.const -1 @@ -51504,56 +52697,56 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5168 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $4 + local.get $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0166 - loop $for-loop|0367 - local.get $0 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0147 + loop $for-loop|0448 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 local.get $3 + local.get $13 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $13 + 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.0166 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0147 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0367 + local.set $13 + br $for-loop|0448 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51561,55 +52754,55 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $6 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 $4 + local.get $6 i32.load offset=4 - local.set $3 - local.get $4 + 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.0 - loop $for-loop|068 + loop $for-loop|049 local.get $0 - local.get $2 + local.get $3 i32.lt_s if 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 $0 - local.get $4 + local.get $6 i32.const 5200 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51618,7 +52811,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|068 + br $for-loop|049 end end i32.const -1 @@ -51627,27 +52820,25 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5232 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $4 + local.get $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - loop $for-loop|0369 - local.get $0 + loop $for-loop|0450 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 1 i32.shl local.get $3 @@ -51655,32 +52846,34 @@ i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $13 + 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 $0 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0369 + local.set $13 + br $for-loop|0450 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51688,55 +52881,55 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $6 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 $4 + local.get $6 i32.load offset=4 - local.set $3 - local.get $4 + 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.0 - loop $for-loop|071 + loop $for-loop|051 local.get $0 - local.get $2 + local.get $3 i32.lt_s if 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 $0 - local.get $4 + local.get $6 i32.const 5264 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51745,7 +52938,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|071 + br $for-loop|051 end end i32.const -1 @@ -51754,27 +52947,25 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5296 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $4 + local.get $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - loop $for-loop|0372 - local.get $0 + loop $for-loop|0452 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 1 i32.shl local.get $3 @@ -51782,32 +52973,34 @@ i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $13 + 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 $0 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0372 + local.set $13 + br $for-loop|0452 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51815,55 +53008,55 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 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 $4 + local.get $6 i32.load offset=4 - local.set $3 - local.get $4 + 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.0 - loop $for-loop|073 + loop $for-loop|053 local.get $0 - local.get $2 + local.get $3 i32.lt_s if 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 $0 - local.get $4 + local.get $6 i32.const 5328 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51872,7 +53065,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|073 + br $for-loop|053 end end i32.const -1 @@ -51881,27 +53074,25 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5360 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $4 + local.get $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - loop $for-loop|0374 - local.get $0 + loop $for-loop|0454 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 @@ -51909,32 +53100,34 @@ i32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $13 + 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 $0 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0374 + local.set $13 + br $for-loop|0454 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51942,55 +53135,55 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $6 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 $4 + local.get $6 i32.load offset=4 - local.set $3 - local.get $4 + 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.0 - loop $for-loop|075 + loop $for-loop|055 local.get $0 - local.get $2 + local.get $3 i32.lt_s if 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 $0 - local.get $4 + local.get $6 i32.const 5392 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -51999,7 +53192,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|075 + br $for-loop|055 end end i32.const -1 @@ -52008,27 +53201,25 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5424 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $4 + local.get $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - loop $for-loop|0376 - local.get $0 + loop $for-loop|0456 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 @@ -52036,32 +53227,34 @@ i32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $4 + local.get $13 + 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 $0 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0376 + local.set $13 + br $for-loop|0456 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52069,55 +53262,55 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $4 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|077 + loop $for-loop|057 local.get $0 - local.get $1 + local.get $2 i32.lt_s if 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 $0 - local.get $3 + local.get $4 i32.const 5456 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -52126,7 +53319,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|077 + br $for-loop|057 end end i32.const -1 @@ -52135,27 +53328,25 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5488 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $3 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - loop $for-loop|0378 + loop $for-loop|0458 local.get $0 - local.get $1 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 3 i32.shl local.get $2 @@ -52163,32 +53354,34 @@ i64.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $13 + 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 $0 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0378 + local.set $13 + br $for-loop|0458 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52196,55 +53389,55 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $4 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|079 + loop $for-loop|060 local.get $0 - local.get $1 + local.get $2 i32.lt_s if 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 $0 - local.get $3 + local.get $4 i32.const 5520 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -52253,7 +53446,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|079 + br $for-loop|060 end end i32.const -1 @@ -52262,27 +53455,25 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5552 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $3 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - loop $for-loop|0380 + loop $for-loop|0461 local.get $0 - local.get $1 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 3 i32.shl local.get $2 @@ -52290,32 +53481,34 @@ i64.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $13 + 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 $0 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0380 + local.set $13 + br $for-loop|0461 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52323,55 +53516,55 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $4 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|081 + loop $for-loop|062 local.get $0 - local.get $1 + local.get $2 i32.lt_s if 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 $0 - local.get $3 + local.get $4 i32.const 5584 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) @@ -52380,7 +53573,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|081 + br $for-loop|062 end end i32.const -1 @@ -52389,27 +53582,25 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5616 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $3 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - loop $for-loop|0382 + loop $for-loop|0463 local.get $0 - local.get $1 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 2 i32.shl local.get $2 @@ -52417,32 +53608,34 @@ f32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $13 + 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 $0 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0382 + local.set $13 + br $for-loop|0463 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52450,55 +53643,55 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $4 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|083 + loop $for-loop|065 local.get $0 - local.get $1 + local.get $2 i32.lt_s if 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 $0 - local.get $3 + local.get $4 i32.const 5648 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) @@ -52507,7 +53700,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|083 + br $for-loop|065 end end i32.const -1 @@ -52516,27 +53709,25 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 5680 i32.store offset=4 - i32.const 0 - local.set $0 - local.get $3 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - loop $for-loop|0384 + loop $for-loop|0466 local.get $0 - local.get $1 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $0 + local.get $13 i32.const 3 i32.shl local.get $2 @@ -52544,26 +53735,26 @@ f64.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $13 + 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 $0 + local.get $13 i32.const 1 i32.add - local.set $0 - br $for-loop|0384 + local.set $13 + br $for-loop|0466 end end i32.const -1 - local.set $0 + local.set $13 end - local.get $0 + local.get $13 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52575,7 +53766,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52583,45 +53774,45 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|085 + loop $for-loop|067 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $2 + local.get $3 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 5712 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52630,7 +53821,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|085 + br $for-loop|067 end end i32.const -1 @@ -52639,32 +53830,32 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 5744 i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - loop $for-loop|0386 + loop $for-loop|0468 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $2 + local.get $3 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 5744 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52673,7 +53864,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0386 + br $for-loop|0468 end end i32.const -1 @@ -52682,7 +53873,7 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52694,7 +53885,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52702,45 +53893,45 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|087 + loop $for-loop|069 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 5776 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52749,7 +53940,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|087 + br $for-loop|069 end end i32.const -1 @@ -52758,32 +53949,32 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 5808 i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - loop $for-loop|0388 + loop $for-loop|0470 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 5808 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52792,7 +53983,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0388 + br $for-loop|0470 end end i32.const -1 @@ -52801,7 +53992,7 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52813,7 +54004,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52821,54 +54012,54 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.sub local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.089 - loop $for-loop|090 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.071 + loop $for-loop|072 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 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.089 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.071 local.get $0 i32.const 1 i32.sub local.set $0 - br $for-loop|090 + br $for-loop|072 end end i32.const -1 @@ -52877,41 +54068,41 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 5872 i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.sub local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0191 - loop $for-loop|0392 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0173 + loop $for-loop|0474 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 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.0191 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0173 local.get $0 i32.const 1 i32.sub local.set $0 - br $for-loop|0392 + br $for-loop|0474 end end i32.const -1 @@ -52920,7 +54111,7 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52932,7 +54123,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52940,27 +54131,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -52968,7 +54159,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|093 + loop $for-loop|075 local.get $0 i32.const 0 i32.ge_s @@ -52976,13 +54167,13 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 5904 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -52991,7 +54182,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|093 + br $for-loop|075 end end i32.const -1 @@ -53000,14 +54191,14 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 5936 i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -53015,7 +54206,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - loop $for-loop|0394 + loop $for-loop|0476 local.get $0 i32.const 0 i32.ge_s @@ -53023,13 +54214,13 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 5936 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -53038,7 +54229,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0394 + br $for-loop|0476 end end i32.const -1 @@ -53047,7 +54238,7 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53059,7 +54250,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53067,27 +54258,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -53095,7 +54286,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|095 + loop $for-loop|077 local.get $0 i32.const 0 i32.ge_s @@ -53103,13 +54294,13 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 5968 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -53118,7 +54309,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|095 + br $for-loop|077 end end i32.const -1 @@ -53127,14 +54318,14 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6000 i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -53142,7 +54333,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - loop $for-loop|0396 + loop $for-loop|0478 local.get $0 i32.const 0 i32.ge_s @@ -53150,13 +54341,13 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6000 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -53165,7 +54356,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0396 + br $for-loop|0478 end end i32.const -1 @@ -53174,7 +54365,7 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53186,7 +54377,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53194,27 +54385,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -53222,7 +54413,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|097 + loop $for-loop|079 local.get $0 i32.const 0 i32.ge_s @@ -53230,13 +54421,13 @@ local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6032 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -53245,7 +54436,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|097 + br $for-loop|079 end end i32.const -1 @@ -53254,14 +54445,14 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6064 i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -53269,7 +54460,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - loop $for-loop|0398 + loop $for-loop|0480 local.get $0 i32.const 0 i32.ge_s @@ -53277,13 +54468,13 @@ local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6064 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -53292,7 +54483,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0398 + br $for-loop|0480 end end i32.const -1 @@ -53301,7 +54492,7 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53313,7 +54504,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53321,27 +54512,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $4 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 $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -53349,7 +54540,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|099 + loop $for-loop|082 local.get $0 i32.const 0 i32.ge_s @@ -53357,13 +54548,13 @@ local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6096 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -53372,7 +54563,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|099 + br $for-loop|082 end end i32.const -1 @@ -53381,14 +54572,14 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -53396,7 +54587,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - loop $for-loop|03100 + loop $for-loop|0483 local.get $0 i32.const 0 i32.ge_s @@ -53404,13 +54595,13 @@ local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6128 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -53419,7 +54610,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|03100 + br $for-loop|0483 end end i32.const -1 @@ -53428,7 +54619,7 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53440,7 +54631,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53448,27 +54639,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $3 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 $2 + local.get $3 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -53476,7 +54667,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|0101 + loop $for-loop|084 local.get $0 i32.const 0 i32.ge_s @@ -53484,13 +54675,13 @@ local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $3 i32.const 6160 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -53499,7 +54690,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0101 + br $for-loop|084 end end i32.const -1 @@ -53508,14 +54699,14 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6192 i32.store offset=4 - local.get $2 + local.get $3 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -53523,7 +54714,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - loop $for-loop|03102 + loop $for-loop|0485 local.get $0 i32.const 0 i32.ge_s @@ -53531,13 +54722,13 @@ local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $3 i32.const 6192 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -53546,7 +54737,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|03102 + br $for-loop|0485 end end i32.const -1 @@ -53555,7 +54746,7 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53567,7 +54758,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53575,27 +54766,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $3 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 $2 + local.get $3 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -53603,7 +54794,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|0103 + loop $for-loop|087 local.get $0 i32.const 0 i32.ge_s @@ -53611,13 +54802,13 @@ local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $3 i32.const 6224 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -53626,7 +54817,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0103 + br $for-loop|087 end end i32.const -1 @@ -53635,14 +54826,14 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6256 i32.store offset=4 - local.get $2 + local.get $3 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -53650,7 +54841,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - loop $for-loop|03104 + loop $for-loop|0488 local.get $0 i32.const 0 i32.ge_s @@ -53658,13 +54849,13 @@ local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $3 i32.const 6256 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -53673,7 +54864,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|03104 + br $for-loop|0488 end end i32.const -1 @@ -53682,7 +54873,7 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53694,7 +54885,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53702,27 +54893,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $3 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $3 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 $2 + local.get $3 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -53730,7 +54921,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|0105 + loop $for-loop|089 local.get $0 i32.const 0 i32.ge_s @@ -53738,13 +54929,13 @@ local.get $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add f32.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $3 i32.const 6288 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) @@ -53753,7 +54944,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0105 + br $for-loop|089 end end i32.const -1 @@ -53762,14 +54953,14 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6320 i32.store offset=4 - local.get $2 + local.get $3 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -53777,7 +54968,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - loop $for-loop|03106 + loop $for-loop|0490 local.get $0 i32.const 0 i32.ge_s @@ -53785,13 +54976,13 @@ local.get $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add f32.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $3 i32.const 6320 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) @@ -53800,7 +54991,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|03106 + br $for-loop|0490 end end i32.const -1 @@ -53809,7 +55000,7 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53821,7 +55012,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -53829,27 +55020,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $3 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $3 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 $2 + local.get $3 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -53857,7 +55048,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|0107 + loop $for-loop|092 local.get $0 i32.const 0 i32.ge_s @@ -53865,13 +55056,13 @@ local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add f64.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $3 i32.const 6352 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) @@ -53880,7 +55071,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|0107 + br $for-loop|092 end end i32.const -1 @@ -53889,14 +55080,14 @@ local.get $0 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner27 global.get $~lib/memory/__stack_pointer i32.const 6384 i32.store offset=4 - local.get $2 + local.get $3 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -53904,7 +55095,7 @@ i32.sub local.set $0 block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - loop $for-loop|03108 + loop $for-loop|0493 local.get $0 i32.const 0 i32.ge_s @@ -53912,13 +55103,13 @@ local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add f64.load i32.const 3 global.set $~argumentsLength local.get $0 - local.get $2 + local.get $3 i32.const 6384 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) @@ -53927,7 +55118,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|03108 + br $for-loop|0493 end end i32.const -1 @@ -53936,13 +55127,15 @@ local.get $0 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53950,90 +55143,88 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 - local.set $2 - loop $for-loop|0109 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|094 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.add i32.load8_s - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0109 + local.set $0 + br $for-loop|094 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner29 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 local.set $2 - loop $for-loop|03110 - local.get $1 + loop $for-loop|0495 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 local.get $3 + local.get $13 i32.add i32.load8_s local.set $0 @@ -54041,30 +55232,32 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03110 + local.set $13 + br $for-loop|0495 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54072,90 +55265,88 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 - local.set $2 - loop $for-loop|0111 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|097 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.add i32.load8_u - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0111 + local.set $0 + br $for-loop|097 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 6512 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner29 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 local.set $2 - loop $for-loop|03112 - local.get $1 + loop $for-loop|0498 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 local.get $3 + local.get $13 i32.add i32.load8_u local.set $0 @@ -54163,30 +55354,32 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03112 + local.set $13 + br $for-loop|0498 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54194,90 +55387,88 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $6 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.0113 (result i32) - local.get $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 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 - local.set $2 - loop $for-loop|0114 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|0100 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.add i32.load8_u - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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.0113 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.099 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0114 + local.set $0 + br $for-loop|0100 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 6576 - i32.store offset=4 - i32.const 0 - local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01115 (result i32) - local.get $4 + br_if $folding-inner29 + 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 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 local.set $2 - loop $for-loop|03116 - local.get $1 + loop $for-loop|04102 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 local.get $3 + local.get $13 i32.add i32.load8_u local.set $0 @@ -54285,30 +55476,32 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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.01115 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01101 drop - local.get $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03116 + local.set $13 + br $for-loop|04102 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54316,95 +55509,93 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|0117 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|0103 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_s - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0117 + local.set $0 + br $for-loop|0103 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 6640 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner29 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 - loop $for-loop|03118 - local.get $1 + loop $for-loop|04104 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 + local.get $13 i32.const 1 i32.shl local.get $3 @@ -54415,30 +55606,32 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03118 + local.set $13 + br $for-loop|04104 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54446,95 +55639,93 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|0119 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|0105 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0119 + local.set $0 + br $for-loop|0105 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 6704 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner29 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 1 i32.shr_u local.set $2 - loop $for-loop|03120 - local.get $1 + loop $for-loop|04106 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 + local.get $13 i32.const 1 i32.shl local.get $3 @@ -54545,30 +55736,32 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03120 + local.set $13 + br $for-loop|04106 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54576,95 +55769,93 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|0121 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|0107 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0121 + local.set $0 + br $for-loop|0107 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 6768 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner29 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 - loop $for-loop|03122 - local.get $1 + loop $for-loop|04108 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 + local.get $13 i32.const 2 i32.shl local.get $3 @@ -54675,30 +55866,32 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03122 + local.set $13 + br $for-loop|04108 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54706,95 +55899,93 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $6 i32.store - local.get $4 + local.get $6 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $6 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $6 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 $6 i32.load offset=4 - local.set $3 - local.get $4 + local.set $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|0123 - local.get $1 - local.get $2 + local.set $3 + loop $for-loop|0109 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $2 local.get $0 - local.get $1 - local.get $4 + local.get $6 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0123 + local.set $0 + br $for-loop|0109 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 6832 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner29 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 $6 i32.load offset=4 local.set $3 - local.get $4 + local.get $6 i32.load offset=8 i32.const 2 i32.shr_u local.set $2 - loop $for-loop|03124 - local.get $1 + loop $for-loop|04110 local.get $2 - i32.lt_s + local.get $13 + i32.gt_s if - local.get $1 + local.get $13 i32.const 2 i32.shl local.get $3 @@ -54805,30 +55996,32 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $1 - local.get $4 + local.get $13 + local.get $6 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03124 + local.set $13 + br $for-loop|04110 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54836,129 +56029,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $4 i32.const 1 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $4 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) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 6864 + i32.store offset=4 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|0125 + local.set $2 + loop $for-loop|0112 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $1 - local.get $3 + local.get $11 + local.get $0 + local.get $4 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0125 + local.set $0 + br $for-loop|0112 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 6896 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner29 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 6896 + i32.store offset=4 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|03126 + loop $for-loop|04113 local.get $0 - local.get $1 + local.get $13 i32.gt_s if - local.get $1 + local.get $13 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 $1 - local.get $3 + local.get $11 + local.get $13 + local.get $4 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03126 + local.set $13 + br $for-loop|04113 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54966,129 +56159,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $4 i32.const 1 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $4 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) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 6928 + i32.store offset=4 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|0127 + local.set $2 + loop $for-loop|0114 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add i64.load - local.set $10 + local.set $11 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $1 - local.get $3 + local.get $11 + local.get $0 + local.get $4 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0127 + local.set $0 + br $for-loop|0114 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 6960 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner29 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 6960 + i32.store offset=4 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|03128 + loop $for-loop|04115 local.get $0 - local.get $1 + local.get $13 i32.gt_s if - local.get $1 + local.get $13 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 $1 - local.get $3 + local.get $11 + local.get $13 + local.get $4 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03128 + local.set $13 + br $for-loop|04115 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55096,49 +56289,49 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $4 i32.const 1 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $4 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) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 6992 + i32.store offset=4 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 - loop $for-loop|0129 + local.set $2 + loop $for-loop|0116 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add f32.load local.set $5 @@ -55146,45 +56339,43 @@ global.set $~argumentsLength i32.const 0 local.get $5 - local.get $1 - local.get $3 + local.get $0 + local.get $4 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0129 + local.set $0 + br $for-loop|0116 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner29 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 7024 + i32.store offset=4 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 - loop $for-loop|03130 + loop $for-loop|04117 local.get $0 - local.get $1 + local.get $13 i32.gt_s if - local.get $1 + local.get $13 i32.const 2 i32.shl local.get $2 @@ -55195,30 +56386,32 @@ global.set $~argumentsLength i32.const 0 local.get $5 - local.get $1 - local.get $3 + local.get $13 + local.get $4 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03130 + local.set $13 + br $for-loop|04117 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 + i32.const 0 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55226,49 +56419,49 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 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 3 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 0 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $4 i32.const 1 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $4 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) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 7056 + i32.store offset=4 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|0131 + local.set $2 + loop $for-loop|0118 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add f64.load local.set $7 @@ -55276,45 +56469,43 @@ global.set $~argumentsLength i32.const 0 local.get $7 - local.get $1 - local.get $3 + local.get $0 + local.get $4 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 $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0131 + local.set $0 + br $for-loop|0118 end end i32.const 1 end i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 7088 - i32.store offset=4 - i32.const 0 - local.set $1 + br_if $folding-inner29 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 7088 + i32.store offset=4 + local.get $4 i32.load offset=4 local.set $2 - local.get $3 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|03132 + loop $for-loop|04119 local.get $0 - local.get $1 + local.get $13 i32.gt_s if - local.get $1 + local.get $13 i32.const 3 i32.shl local.get $2 @@ -55325,24 +56516,24 @@ global.set $~argumentsLength i32.const 0 local.get $7 - local.get $1 - local.get $3 + local.get $13 + local.get $4 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 $1 + local.get $13 i32.const 1 i32.add - local.set $1 - br $for-loop|03132 + local.set $13 + br $for-loop|04119 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -55354,7 +56545,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55367,14 +56558,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.const 7152 i32.const 0 @@ -55384,7 +56575,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 1 i32.const 7152 i32.const 1 @@ -55394,7 +56585,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 2 i32.const 7152 i32.const 2 @@ -55404,41 +56595,39 @@ global.get $~lib/memory/__stack_pointer i32.const 7200 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 - local.set $1 - loop $for-loop|073133 - local.get $1 - local.get $9 + local.set $2 + loop $for-loop|0116120 + local.get $2 + local.get $37 i32.gt_s if - local.get $2 - local.get $9 + local.get $3 + local.get $37 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $3 + local.get $37 + local.get $4 i32.const 7200 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $9 + local.get $37 i32.const 1 i32.add - local.set $9 - br $for-loop|073133 + local.set $37 + br $for-loop|0116120 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -55450,7 +56639,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55463,14 +56652,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.const 7152 i32.const 0 @@ -55481,7 +56670,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 1 i32.const 7152 i32.const 1 @@ -55492,7 +56681,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 2 i32.const 7152 i32.const 2 @@ -55503,41 +56692,39 @@ global.get $~lib/memory/__stack_pointer i32.const 7232 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 - local.set $1 - loop $for-loop|076 - local.get $1 - local.get $9 + local.set $2 + loop $for-loop|0121 + local.get $2 + local.get $38 i32.gt_s if - local.get $2 - local.get $9 + local.get $3 + local.get $38 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $3 + local.get $38 + local.get $4 i32.const 7232 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $9 + local.get $38 i32.const 1 i32.add - local.set $9 - br $for-loop|076 + local.set $38 + br $for-loop|0121 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -55549,7 +56736,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55562,14 +56749,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.const 7152 i32.const 0 @@ -55580,7 +56767,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 1 i32.const 7152 i32.const 1 @@ -55591,7 +56778,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 2 i32.const 7152 i32.const 2 @@ -55602,41 +56789,39 @@ global.get $~lib/memory/__stack_pointer i32.const 7264 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 - local.set $1 - loop $for-loop|080 - local.get $1 - local.get $9 + local.set $2 + loop $for-loop|0128 + local.get $2 + local.get $39 i32.gt_s if - local.get $2 - local.get $9 + local.get $3 + local.get $39 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $3 + local.get $39 + local.get $4 i32.const 7264 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $9 + local.get $39 i32.const 1 i32.add - local.set $9 - br $for-loop|080 + local.set $39 + br $for-loop|0128 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -55648,7 +56833,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55661,14 +56846,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.const 7152 i32.const 0 @@ -55678,7 +56863,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 1 i32.const 7152 i32.const 1 @@ -55688,7 +56873,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 2 i32.const 7152 i32.const 2 @@ -55698,45 +56883,43 @@ global.get $~lib/memory/__stack_pointer i32.const 7296 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 - loop $for-loop|083134 - local.get $1 - local.get $9 + local.set $2 + loop $for-loop|0133 + local.get $2 + local.get $40 i32.gt_s if - local.get $9 + local.get $40 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $3 + local.get $40 + local.get $4 i32.const 7296 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $9 + local.get $40 i32.const 1 i32.add - local.set $9 - br $for-loop|083134 + local.set $40 + br $for-loop|0133 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -55748,7 +56931,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55761,14 +56944,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.const 7152 i32.const 0 @@ -55779,7 +56962,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 1 i32.const 7152 i32.const 1 @@ -55790,7 +56973,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 2 i32.const 7152 i32.const 2 @@ -55801,45 +56984,43 @@ global.get $~lib/memory/__stack_pointer i32.const 7328 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 - loop $for-loop|086 - local.get $1 - local.get $9 + local.set $2 + loop $for-loop|0138 + local.get $2 + local.get $41 i32.gt_s if - local.get $9 + local.get $41 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $3 + local.get $41 + local.get $4 i32.const 7328 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $9 + local.get $41 i32.const 1 i32.add - local.set $9 - br $for-loop|086 + local.set $41 + br $for-loop|0138 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -55851,7 +57032,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55864,14 +57045,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.const 7152 i32.const 0 @@ -55880,7 +57061,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 1 i32.const 7152 i32.const 1 @@ -55889,7 +57070,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 2 i32.const 7152 i32.const 2 @@ -55898,45 +57079,43 @@ global.get $~lib/memory/__stack_pointer i32.const 7360 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|089 - local.get $1 - local.get $9 + local.set $2 + loop $for-loop|0143 + local.get $2 + local.get $42 i32.gt_s if - local.get $9 + local.get $42 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $3 + local.get $42 + local.get $4 i32.const 7360 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $9 + local.get $42 i32.const 1 i32.add - local.set $9 - br $for-loop|089 + local.set $42 + br $for-loop|0143 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -55948,7 +57127,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -55961,14 +57140,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.const 7152 i32.const 0 @@ -55977,7 +57156,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 1 i32.const 7152 i32.const 1 @@ -55986,7 +57165,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $4 i32.const 2 i32.const 7152 i32.const 2 @@ -55995,45 +57174,43 @@ global.get $~lib/memory/__stack_pointer i32.const 7392 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 - local.get $3 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|092 - local.get $1 - local.get $9 + local.set $2 + loop $for-loop|0148 + local.get $2 + local.get $43 i32.gt_s if - local.get $9 + local.get $43 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $3 + local.get $43 + local.get $4 i32.const 7392 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $9 + local.get $43 i32.const 1 i32.add - local.set $9 - br $for-loop|092 + local.set $43 + br $for-loop|0148 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56045,7 +57222,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56058,14 +57235,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -56075,7 +57252,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -56085,7 +57262,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -56095,45 +57272,43 @@ global.get $~lib/memory/__stack_pointer i32.const 7424 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $2 + local.get $3 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|095135 + loop $for-loop|0153 local.get $0 - local.get $9 + local.get $44 i32.gt_s if - local.get $9 + local.get $44 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $2 + local.get $44 + local.get $3 i32.const 7424 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $9 + local.get $44 i32.const 1 i32.add - local.set $9 - br $for-loop|095135 + local.set $44 + br $for-loop|0153 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56145,7 +57320,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56158,14 +57333,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -56175,7 +57350,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -56185,7 +57360,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -56195,45 +57370,43 @@ global.get $~lib/memory/__stack_pointer i32.const 7456 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $2 - i32.load offset=4 - local.set $1 - local.get $2 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 - loop $for-loop|098 + loop $for-loop|0158 local.get $0 - local.get $9 + local.get $45 i32.gt_s if - local.get $9 + local.get $45 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $2 + local.get $45 + local.get $3 i32.const 7456 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $9 + local.get $45 i32.const 1 i32.add - local.set $9 - br $for-loop|098 + local.set $45 + br $for-loop|0158 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56245,7 +57418,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56258,14 +57431,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -56275,7 +57448,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -56285,7 +57458,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -56295,45 +57468,43 @@ global.get $~lib/memory/__stack_pointer i32.const 7488 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $2 + local.get $3 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 - loop $for-loop|0101136 + loop $for-loop|0163 local.get $0 - local.get $9 + local.get $46 i32.gt_s if - local.get $9 + local.get $46 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $9 - local.get $2 + local.get $46 + local.get $3 i32.const 7488 i32.load call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $9 + local.get $46 i32.const 1 i32.add - local.set $9 - br $for-loop|0101136 + local.set $46 + br $for-loop|0163 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56345,7 +57516,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56358,14 +57529,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -56375,7 +57546,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -56385,7 +57556,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -56395,582 +57566,49 @@ global.get $~lib/memory/__stack_pointer i32.const 7520 i32.store offset=8 - i32.const 0 - local.set $9 - local.get $2 - i32.load offset=4 - local.set $1 - local.get $2 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $0 - loop $for-loop|0104 - local.get $0 - local.get $9 - i32.gt_s - if - local.get $9 - i32.const 3 - i32.shl - local.get $1 - i32.add - f64.load - i32.const 3 - global.set $~argumentsLength - local.get $9 - local.get $2 - i32.const 7520 - i32.load - call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0104 - end - end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - 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 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - 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 0 - i32.store offset=16 - local.get $0 - i32.const 7616 - i32.store - local.get $0 - i32.const 7628 - i32.load - local.tee $3 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store offset=8 - loop $for-loop|0106 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 7616 - local.get $1 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - local.get $1 - i32.const 7616 - local.get $1 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0106 - end - end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - call $~lib/typedarray/Int8Array#__get - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $1 - i32.sub - call $~lib/array/Array#__get - i32.extend8_s - i32.ne - br_if $folding-inner18 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 8 - i32.ne - br_if $folding-inner19 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 7 - i32.ne - br_if $folding-inner20 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 6 - i32.ne - br_if $folding-inner21 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int8Array#__get - i32.const 5 - i32.ne - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - 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 0 - i32.store offset=16 - local.get $0 - i32.const 7616 - i32.store - local.get $0 - i32.const 7628 - i32.load - local.tee $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store offset=8 - loop $for-loop|020137 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 7616 - 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 7616 - local.get $1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|020137 - end - end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $1 - loop $for-loop|121 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $1 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - br_if $folding-inner18 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|121 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 8 - call $~lib/typedarray/Uint8Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 - i32.ne - br_if $folding-inner19 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7 - i32.ne - br_if $folding-inner20 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 6 - i32.ne - br_if $folding-inner21 - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 - i32.ne - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - 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 0 - i32.store offset=16 - local.get $0 - i32.const 7616 - i32.store - local.get $0 - i32.const 7628 - i32.load - local.tee $3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store offset=8 - loop $for-loop|024108 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - i32.const 7616 - 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 7616 - local.get $1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|024108 - end - end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $1 - loop $for-loop|125 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7616 - local.get $3 - i32.const 1 - i32.sub - local.get $1 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - br_if $folding-inner18 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|125 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 - i32.ne - br_if $folding-inner19 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7 - i32.ne - br_if $folding-inner20 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 6 - i32.ne - br_if $folding-inner21 - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.ne - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - 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 0 - i32.store offset=16 - local.get $0 - i32.const 7616 - i32.store - local.get $0 - i32.const 7628 - i32.load - local.tee $3 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer + i32.load offset=4 + local.set $2 local.get $3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store offset=8 - loop $for-loop|028138 - local.get $1 - local.get $3 - i32.lt_s + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0168 + local.get $0 + local.get $47 + i32.gt_s if + local.get $47 + i32.const 3 + i32.shl local.get $2 - local.get $1 - i32.const 7616 - local.get $1 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - local.get $1 - i32.const 7616 - local.get $1 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 i32.add - local.set $1 - br $for-loop|028138 - end - end - local.get $2 - call $~lib/typedarray/Int16Array#reverse - drop - i32.const 0 - local.set $1 - loop $for-loop|129 - local.get $1 - local.get $3 - i32.lt_s - if - local.get $2 - local.get $1 - call $~lib/typedarray/Int16Array#__get - i32.const 7616 + f64.load + i32.const 3 + global.set $~argumentsLength + local.get $47 local.get $3 - i32.const 1 - i32.sub - local.get $1 - i32.sub - call $~lib/array/Array#__get - i32.extend16_s - i32.ne - br_if $folding-inner18 - local.get $1 + i32.const 7520 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_none) + local.get $47 i32.const 1 i32.add - local.set $1 - br $for-loop|129 + local.set $47 + br $for-loop|0168 end end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 - i32.ne - br_if $folding-inner19 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 7 - i32.ne - br_if $folding-inner20 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 6 - i32.ne - br_if $folding-inner21 - local.get $0 + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Int16Array#__get - i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56978,133 +57616,136 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i64.const 0 i64.store offset=8 - local.get $0 + local.get $2 i32.const 0 i32.store offset=16 - local.get $0 + local.get $2 i32.const 7616 i32.store - local.get $0 + local.get $2 i32.const 7628 i32.load - local.tee $3 - call $~lib/typedarray/Uint16Array#constructor + local.tee $4 + call $~lib/typedarray/Int8Array#constructor local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + local.get $4 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 i32.store offset=8 - loop $for-loop|032 - local.get $1 - local.get $3 + loop $for-loop|0122 + local.get $0 + local.get $4 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $3 local.get $0 - local.get $1 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $1 + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|032 + local.set $0 + br $for-loop|0122 end end local.get $2 - call $~lib/typedarray/Int16Array#reverse - drop + i32.load offset=4 + local.get $2 + i32.load offset=8 + call $~lib/util/bytes/REVERSE i32.const 0 - local.set $1 - loop $for-loop|133 - local.get $1 - local.get $3 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $4 i32.lt_s if local.get $2 - local.get $1 - call $~lib/typedarray/Uint16Array#__get + local.get $0 + call $~lib/typedarray/Int8Array#__get i32.const 7616 - local.get $3 + local.get $4 i32.const 1 i32.sub - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__get - i32.const 65535 - i32.and + i32.extend8_s i32.ne - br_if $folding-inner18 - local.get $1 + br_if $folding-inner31 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|133 + local.set $0 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 + i32.const 4 i32.const 8 - call $~lib/typedarray/Uint16Array#subarray + call $~lib/typedarray/Int8Array#subarray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 local.get $0 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + call $~lib/util/bytes/REVERSE + local.get $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 8 i32.ne - br_if $folding-inner19 + br_if $folding-inner32 local.get $0 i32.const 1 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 7 i32.ne - br_if $folding-inner20 + br_if $folding-inner33 local.get $0 i32.const 2 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 6 i32.ne - br_if $folding-inner21 + br_if $folding-inner34 local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57112,235 +57753,138 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i64.const 0 i64.store offset=8 - local.get $0 + local.get $2 i32.const 0 i32.store offset=16 - local.get $0 + local.get $2 i32.const 7616 i32.store - local.get $0 + local.get $2 i32.const 7628 i32.load - local.tee $11 - call $~lib/typedarray/Int32Array#constructor - local.tee $8 + local.tee $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $11 - call $~lib/typedarray/Int32Array#constructor - local.tee $9 + local.get $4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 i32.store offset=8 - loop $for-loop|036 - local.get $1 - local.get $11 + loop $for-loop|0123 + local.get $0 + local.get $4 i32.lt_s if - local.get $8 - local.get $1 + local.get $2 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $9 - local.get $1 + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $3 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $1 + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|036 + local.set $0 + br $for-loop|0123 end end - i32.const 0 - local.set $1 - local.get $8 + local.get $2 i32.load offset=4 - local.set $6 - local.get $8 + local.get $2 i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $0 - i32.const 1 - i32.gt_u - if - local.get $0 - i32.const 1 - i32.shr_u - local.set $4 - local.get $0 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|0 - local.get $1 - local.get $4 - i32.lt_u - if - local.get $1 - i32.const 2 - i32.shl - local.get $6 - i32.add - local.tee $0 - i32.load - local.set $2 - local.get $0 - local.get $3 - local.get $1 - i32.sub - i32.const 2 - i32.shl - local.get $6 - i32.add - local.tee $0 - i32.load - i32.store - local.get $0 - local.get $2 - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0 - end - end - end + call $~lib/util/bytes/REVERSE i32.const 0 - local.set $1 - loop $for-loop|137 - local.get $1 - local.get $11 + local.set $0 + loop $for-loop|1124 + local.get $0 + local.get $4 i32.lt_s if - local.get $8 - local.get $1 - call $~lib/typedarray/Int32Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8Array#__get i32.const 7616 - local.get $11 + local.get $4 i32.const 1 i32.sub - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__get + i32.const 255 + i32.and i32.ne - br_if $folding-inner18 - local.get $1 + br_if $folding-inner31 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|137 + local.set $0 + br $for-loop|1124 end end global.get $~lib/memory/__stack_pointer - local.get $9 - i32.const 4 + local.get $3 i32.const 8 - call $~lib/typedarray/Int32Array#subarray - local.set $6 + call $~lib/typedarray/Uint8Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=12 - i32.const 0 - local.set $9 - local.get $6 + local.get $0 i32.load offset=4 - local.set $4 - local.get $6 + local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $0 - i32.const 1 - i32.gt_u - if - local.get $0 - i32.const 1 - i32.shr_u - local.set $3 - local.get $0 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|0140 - local.get $3 - local.get $9 - i32.gt_u - if - local.get $9 - i32.const 2 - i32.shl - local.get $4 - i32.add - local.tee $0 - i32.load - local.set $1 - local.get $0 - local.get $2 - local.get $9 - i32.sub - i32.const 2 - i32.shl - local.get $4 - i32.add - local.tee $0 - i32.load - i32.store - local.get $0 - local.get $1 - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $while-continue|0140 - end - end - end - local.get $6 + call $~lib/util/bytes/REVERSE + local.get $0 i32.store offset=16 - local.get $6 + local.get $0 i32.const 0 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 8 i32.ne - br_if $folding-inner19 - local.get $6 + br_if $folding-inner32 + local.get $0 i32.const 1 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 7 i32.ne - br_if $folding-inner20 - local.get $6 + br_if $folding-inner33 + local.get $0 i32.const 2 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 6 i32.ne - br_if $folding-inner21 - local.get $6 + br_if $folding-inner34 + local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57348,234 +57892,138 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 + local.tee $2 i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 7616 - i32.store - local.get $0 - i32.const 7628 - i32.load - local.tee $11 - call $~lib/typedarray/Uint32Array#constructor - local.tee $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $11 - call $~lib/typedarray/Uint32Array#constructor - local.tee $9 - i32.store offset=8 - loop $for-loop|040141 - local.get $1 - local.get $11 - i32.lt_s - if - local.get $8 - local.get $1 - i32.const 7616 - local.get $1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $9 - local.get $1 - i32.const 7616 - local.get $1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|040141 - end - end - i32.const 0 - local.set $1 - local.get $8 - i32.load offset=4 - local.set $6 - local.get $8 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $0 - i32.const 1 - i32.gt_u - if - local.get $0 - i32.const 1 - i32.shr_u - local.set $4 - local.get $0 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|0143 - local.get $1 - local.get $4 - i32.lt_u - if - local.get $1 - i32.const 2 - i32.shl - local.get $6 - i32.add - local.tee $0 - i32.load - local.set $2 - local.get $0 - local.get $3 - local.get $1 - i32.sub - i32.const 2 - i32.shl - local.get $6 - i32.add - local.tee $0 - i32.load - i32.store - local.get $0 - local.get $2 - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0143 - end + i64.store + local.get $2 + i64.const 0 + i64.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + i32.const 7616 + i32.store + local.get $2 + i32.const 7628 + i32.load + local.tee $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0125 + local.get $0 + local.get $4 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0125 end end + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + call $~lib/util/bytes/REVERSE i32.const 0 - local.set $1 - loop $for-loop|141 - local.get $1 - local.get $11 + local.set $0 + loop $for-loop|1126 + local.get $0 + local.get $4 i32.lt_s if - local.get $8 - local.get $1 - call $~lib/typedarray/Uint32Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7616 - local.get $11 + local.get $4 i32.const 1 i32.sub - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__get + i32.const 255 + i32.and i32.ne - br_if $folding-inner18 - local.get $1 + br_if $folding-inner31 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|141 + local.set $0 + br $for-loop|1126 end end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.const 8 - call $~lib/typedarray/Uint32Array#subarray - local.set $6 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=12 - i32.const 0 - local.set $9 - local.get $6 + local.get $0 i32.load offset=4 - local.set $4 - local.get $6 + local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $0 - i32.const 1 - i32.gt_u - if - local.get $0 - i32.const 1 - i32.shr_u - local.set $3 - local.get $0 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|0145 - local.get $3 - local.get $9 - i32.gt_u - if - local.get $9 - i32.const 2 - i32.shl - local.get $4 - i32.add - local.tee $0 - i32.load - local.set $1 - local.get $0 - local.get $2 - local.get $9 - i32.sub - i32.const 2 - i32.shl - local.get $4 - i32.add - local.tee $0 - i32.load - i32.store - local.get $0 - local.get $1 - i32.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $while-continue|0145 - end - end - end - local.get $6 + call $~lib/util/bytes/REVERSE + local.get $0 i32.store offset=16 - local.get $6 + local.get $0 i32.const 0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 8 i32.ne - br_if $folding-inner19 - local.get $6 + br_if $folding-inner32 + local.get $0 i32.const 1 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7 i32.ne - br_if $folding-inner20 - local.get $6 + br_if $folding-inner33 + local.get $0 i32.const 2 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 6 i32.ne - br_if $folding-inner21 - local.get $6 + br_if $folding-inner34 + local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57583,237 +58031,130 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i64.const 0 i64.store offset=8 - local.get $0 + local.get $2 i32.const 0 i32.store offset=16 - local.get $0 + local.get $2 i32.const 7616 i32.store - local.get $0 + local.get $2 i32.const 7628 i32.load - local.tee $9 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 - call $~lib/typedarray/Int64Array#constructor - local.tee $8 + local.get $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 i32.store offset=8 - loop $for-loop|044 - local.get $1 - local.get $9 + loop $for-loop|0127 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $8 - local.get $1 + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $3 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $1 + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|044 + local.set $0 + br $for-loop|0127 end end + local.get $2 + call $~lib/typedarray/Int16Array#reverse + drop i32.const 0 - local.set $1 - local.get $6 - i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $0 - i32.const 1 - i32.gt_u - if - local.get $0 - i32.const 1 - i32.shr_u - local.set $3 + local.set $0 + loop $for-loop|1128 local.get $0 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|0146 - local.get $1 - local.get $3 - i32.lt_u - if - local.get $1 - i32.const 3 - i32.shl - local.get $4 - i32.add - local.tee $0 - i64.load - local.set $10 - local.get $0 - local.get $2 - local.get $1 - i32.sub - i32.const 3 - i32.shl - local.get $4 - i32.add - local.tee $0 - i64.load - i64.store - local.get $0 - local.get $10 - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0146 - end - end - end - i32.const 0 - local.set $1 - loop $for-loop|145 - local.get $1 - local.get $9 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 - call $~lib/typedarray/Int64Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Int16Array#__get i32.const 7616 - local.get $9 + local.get $4 i32.const 1 i32.sub - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - br_if $folding-inner18 - local.get $1 + i32.extend16_s + i32.ne + br_if $folding-inner31 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|145 + local.set $0 + br $for-loop|1128 end end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 8 - call $~lib/typedarray/Int64Array#subarray - local.set $4 + call $~lib/typedarray/Int16Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=12 - i32.const 0 - local.set $9 - local.get $4 - i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 - i32.const 3 - i32.shr_u + local.get $0 + call $~lib/typedarray/Int16Array#reverse local.tee $0 - i32.const 1 - i32.gt_u - if - local.get $0 - i32.const 1 - i32.shr_u - local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|0148 - local.get $2 - local.get $9 - i32.gt_u - if - local.get $9 - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $0 - i64.load - local.set $10 - local.get $0 - local.get $1 - local.get $9 - i32.sub - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $0 - i64.load - i64.store - local.get $0 - local.get $10 - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $while-continue|0148 - end - end - end - local.get $4 i32.store offset=16 - local.get $4 + local.get $0 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 - i64.ne - br_if $folding-inner19 - local.get $4 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $0 i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 7 - i64.ne - br_if $folding-inner20 - local.get $4 + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $0 i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 6 - i64.ne - br_if $folding-inner21 - local.get $4 + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne - br_if $folding-inner22 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.ne + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57821,237 +58162,131 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i64.const 0 i64.store offset=8 - local.get $0 + local.get $2 i32.const 0 i32.store offset=16 - local.get $0 + local.get $2 i32.const 7616 i32.store - local.get $0 + local.get $2 i32.const 7628 i32.load - local.tee $9 - call $~lib/typedarray/Uint64Array#constructor - local.tee $6 + local.tee $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 - call $~lib/typedarray/Uint64Array#constructor - local.tee $8 + local.get $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 i32.store offset=8 - loop $for-loop|048 - local.get $1 - local.get $9 + loop $for-loop|0129 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $8 - local.get $1 + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 + local.get $0 i32.const 7616 - local.get $1 + local.get $0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $1 + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|048 + local.set $0 + br $for-loop|0129 end end + local.get $2 + call $~lib/typedarray/Int16Array#reverse + drop i32.const 0 - local.set $1 - local.get $6 - i32.load offset=4 - local.set $4 - local.get $6 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $0 - i32.const 1 - i32.gt_u - if - local.get $0 - i32.const 1 - i32.shr_u - local.set $3 + local.set $0 + loop $for-loop|1130 local.get $0 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|0150 - local.get $1 - local.get $3 - i32.lt_u - if - local.get $1 - i32.const 3 - i32.shl - local.get $4 - i32.add - local.tee $0 - i64.load - local.set $10 - local.get $0 - local.get $2 - local.get $1 - i32.sub - i32.const 3 - i32.shl - local.get $4 - i32.add - local.tee $0 - i64.load - i64.store - local.get $0 - local.get $10 - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|0150 - end - end - end - i32.const 0 - local.set $1 - loop $for-loop|149 - local.get $1 - local.get $9 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 - call $~lib/typedarray/Uint64Array#__get + local.get $2 + local.get $0 + call $~lib/typedarray/Uint16Array#__get i32.const 7616 - local.get $9 + local.get $4 i32.const 1 i32.sub - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - br_if $folding-inner18 - local.get $1 + i32.const 65535 + i32.and + i32.ne + br_if $folding-inner31 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|149 + local.set $0 + br $for-loop|1130 end end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 8 - call $~lib/typedarray/Uint64Array#subarray - local.set $4 + call $~lib/typedarray/Uint16Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.store offset=12 - i32.const 0 - local.set $9 - local.get $4 - i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 - i32.const 3 - i32.shr_u + local.get $0 + call $~lib/typedarray/Int16Array#reverse local.tee $0 - i32.const 1 - i32.gt_u - if - local.get $0 - i32.const 1 - i32.shr_u - local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|0152 - local.get $2 - local.get $9 - i32.gt_u - if - local.get $9 - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $0 - i64.load - local.set $10 - local.get $0 - local.get $1 - local.get $9 - i32.sub - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $0 - i64.load - i64.store - local.get $0 - local.get $10 - i64.store - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $while-continue|0152 - end - end - end - local.get $4 i32.store offset=16 - local.get $4 + local.get $0 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.ne - br_if $folding-inner19 - local.get $4 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $0 i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 7 - i64.ne - br_if $folding-inner20 - local.get $4 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $0 i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 6 - i64.ne - br_if $folding-inner21 - local.get $4 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.ne - br_if $folding-inner22 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.ne + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58059,7 +58294,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58076,138 +58311,136 @@ local.get $0 i32.const 7628 i32.load + local.tee $10 + call $~lib/typedarray/Int32Array#constructor local.tee $9 - call $~lib/typedarray/Float32Array#constructor - local.tee $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 - call $~lib/typedarray/Float32Array#constructor + local.get $10 + call $~lib/typedarray/Int32Array#constructor local.tee $8 i32.store offset=8 - loop $for-loop|052110 + loop $for-loop|0171 local.get $1 - local.get $9 + local.get $10 i32.lt_s if - local.get $6 + local.get $9 local.get $1 i32.const 7616 local.get $1 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Int32Array#__set local.get $8 local.get $1 i32.const 7616 local.get $1 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Int32Array#__set local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|052110 + br $for-loop|0171 end end i32.const 0 - local.set $1 - local.get $6 + local.set $0 + local.get $9 i32.load offset=4 - local.set $4 - local.get $6 + local.set $6 + local.get $9 i32.load offset=8 i32.const 2 i32.shr_u - 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 $3 - local.get $0 + local.set $4 + local.get $1 i32.const 1 i32.sub - local.set $2 - loop $while-continue|0153 - local.get $1 - local.get $3 + local.set $3 + loop $while-continue|0 + local.get $0 + local.get $4 i32.lt_u if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $6 i32.add - local.tee $0 - f32.load - local.set $5 - local.get $0 - local.get $2 + local.tee $1 + i32.load + local.set $2 local.get $1 + local.get $3 + local.get $0 i32.sub i32.const 2 i32.shl - local.get $4 + local.get $6 i32.add - local.tee $0 - f32.load - f32.store - local.get $0 - local.get $5 - f32.store + local.tee $1 + i32.load + i32.store local.get $1 + local.get $2 + i32.store + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|0153 + local.set $0 + br $while-continue|0 end end end i32.const 0 local.set $1 - loop $for-loop|153 + loop $for-loop|1131 local.get $1 - local.get $9 + local.get $10 i32.lt_s if - local.get $6 + local.get $9 local.get $1 - call $~lib/typedarray/Float32Array#__get + call $~lib/typedarray/Int32Array#__get i32.const 7616 - local.get $9 + local.get $10 i32.const 1 i32.sub local.get $1 i32.sub call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne - br_if $folding-inner18 + i32.ne + br_if $folding-inner31 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|153 + br $for-loop|1131 end end global.get $~lib/memory/__stack_pointer local.get $8 + i32.const 4 i32.const 8 - call $~lib/typedarray/Float32Array#subarray - local.set $4 + call $~lib/typedarray/Int32Array#subarray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $8 i32.store offset=12 i32.const 0 - local.set $9 - local.get $4 + local.set $1 + local.get $8 i32.load offset=4 - local.set $3 - local.get $4 + local.set $6 + local.get $8 i32.load offset=8 i32.const 2 i32.shr_u @@ -58218,78 +58451,76 @@ 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 $1 - loop $while-continue|0155 - local.get $2 - local.get $9 - i32.gt_u + local.set $3 + loop $while-continue|0133 + local.get $1 + local.get $4 + i32.lt_u if - local.get $9 + local.get $1 i32.const 2 i32.shl - local.get $3 + local.get $6 i32.add local.tee $0 - f32.load - local.set $5 + i32.load + local.set $2 local.get $0 + local.get $3 local.get $1 - local.get $9 i32.sub i32.const 2 i32.shl - local.get $3 + local.get $6 i32.add local.tee $0 - f32.load - f32.store + i32.load + i32.store local.get $0 - local.get $5 - f32.store - local.get $9 + local.get $2 + i32.store + local.get $1 i32.const 1 i32.add - local.set $9 - br $while-continue|0155 + local.set $1 + br $while-continue|0133 end end end - local.get $4 + local.get $8 i32.store offset=16 - local.get $4 + local.get $8 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.ne - br_if $folding-inner19 - local.get $4 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $8 i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 7 - f32.ne - br_if $folding-inner20 - local.get $4 + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $8 i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 6 - f32.ne - br_if $folding-inner21 - local.get $4 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $8 i32.const 3 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne - br_if $folding-inner22 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.ne + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58297,7 +58528,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58314,141 +58545,137 @@ local.get $0 i32.const 7628 i32.load + local.tee $10 + call $~lib/typedarray/Uint32Array#constructor local.tee $9 - call $~lib/typedarray/Float64Array#constructor - local.tee $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 - call $~lib/typedarray/Float64Array#constructor + local.get $10 + call $~lib/typedarray/Uint32Array#constructor local.tee $8 i32.store offset=8 - loop $for-loop|056156 - local.get $1 - local.get $9 - i32.lt_s + loop $for-loop|021134 + local.get $10 + local.get $16 + i32.gt_s if - local.get $6 - local.get $1 + local.get $9 + local.get $16 i32.const 7616 - local.get $1 + local.get $16 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $8 - local.get $1 + local.get $16 i32.const 7616 - local.get $1 + local.get $16 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $1 + call $~lib/typedarray/Uint32Array#__set + local.get $16 i32.const 1 i32.add - local.set $1 - br $for-loop|056156 + local.set $16 + br $for-loop|021134 end end i32.const 0 - local.set $1 - local.get $6 + local.set $0 + local.get $9 i32.load offset=4 - local.set $4 - local.get $6 + local.set $6 + local.get $9 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - 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 $3 - local.get $0 + local.set $4 + local.get $1 i32.const 1 i32.sub - local.set $2 - loop $while-continue|0157 - local.get $1 - local.get $3 + local.set $3 + loop $while-continue|0136 + local.get $0 + local.get $4 i32.lt_u if - local.get $1 - i32.const 3 + local.get $0 + i32.const 2 i32.shl - local.get $4 + local.get $6 i32.add - local.tee $0 - f64.load - local.set $7 - local.get $0 - local.get $2 + local.tee $1 + i32.load + local.set $2 local.get $1 + local.get $3 + local.get $0 i32.sub - i32.const 3 + i32.const 2 i32.shl - local.get $4 + local.get $6 i32.add - local.tee $0 - f64.load - f64.store - local.get $0 - local.get $7 - f64.store + local.tee $1 + i32.load + i32.store local.get $1 + local.get $2 + i32.store + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|0157 + local.set $0 + br $while-continue|0136 end end end i32.const 0 - local.set $1 - loop $for-loop|157 - local.get $1 - local.get $9 - i32.lt_s + local.set $16 + loop $for-loop|124 + local.get $10 + local.get $16 + i32.gt_s if - local.get $6 - local.get $1 - call $~lib/typedarray/Float64Array#__get - i32.const 7616 local.get $9 + local.get $16 + call $~lib/typedarray/Uint32Array#__get + i32.const 7616 + local.get $10 i32.const 1 i32.sub - local.get $1 + local.get $16 i32.sub call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne - br_if $folding-inner18 - local.get $1 + i32.ne + br_if $folding-inner31 + local.get $16 i32.const 1 i32.add - local.set $1 - br $for-loop|157 + local.set $16 + br $for-loop|124 end end global.get $~lib/memory/__stack_pointer local.get $8 - i32.const 4 i32.const 8 - call $~lib/typedarray/Float64Array#subarray - local.set $4 + call $~lib/typedarray/Uint32Array#subarray + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $8 i32.store offset=12 i32.const 0 - local.set $9 - local.get $4 + local.set $1 + local.get $8 i32.load offset=4 - local.set $3 - local.get $4 + local.set $6 + local.get $8 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u local.tee $0 i32.const 1 @@ -58457,76 +58684,80 @@ 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 $1 - loop $while-continue|0159 - local.get $2 - local.get $9 - i32.gt_u + local.set $3 + loop $while-continue|0138 + local.get $1 + local.get $4 + i32.lt_u if - local.get $9 - i32.const 3 + local.get $1 + i32.const 2 i32.shl - local.get $3 + local.get $6 i32.add local.tee $0 - f64.load - local.set $7 + i32.load + local.set $2 local.get $0 + local.get $3 local.get $1 - local.get $9 i32.sub - i32.const 3 + i32.const 2 i32.shl - local.get $3 + local.get $6 i32.add local.tee $0 - f64.load - f64.store + i32.load + i32.store local.get $0 - local.get $7 - f64.store - local.get $9 + local.get $2 + i32.store + local.get $1 i32.const 1 i32.add - local.set $9 - br $while-continue|0159 + local.set $1 + br $while-continue|0138 end end end - local.get $4 + local.get $8 i32.store offset=16 - local.get $4 + local.get $8 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.ne - br_if $folding-inner19 - local.get $4 + call $~lib/typedarray/Uint32Array#__get + i32.const 8 + i32.ne + br_if $folding-inner32 + local.get $8 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.ne - br_if $folding-inner20 - local.get $4 + call $~lib/typedarray/Uint32Array#__get + i32.const 7 + i32.ne + br_if $folding-inner33 + local.get $8 i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.ne - br_if $folding-inner21 - local.get $4 + call $~lib/typedarray/Uint32Array#__get + i32.const 6 + i32.ne + br_if $folding-inner34 + local.get $8 i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne - br_if $folding-inner22 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.ne + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> @@ -58548,9 +58779,9 @@ f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set 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/Float64Array,f64>|inlined.0 local.get $4 i32.load offset=8 @@ -58562,13 +58793,13 @@ local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|0160 - local.get $0 + loop $while-continue|0139 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -58577,17 +58808,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|0160 + local.set $1 + br $while-continue|0139 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -58598,28 +58829,26 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) i32.const 0 local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $1 i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop local.get $4 i32.load offset=4 local.set $0 - loop $while-continue|060 + loop $while-continue|0140 local.get $1 - local.get $2 - i32.lt_s + local.get $51 + i32.gt_s if i32.const 1 - local.get $1 + local.get $51 i32.const 3 i32.shl local.get $0 @@ -58634,11 +58863,11 @@ i32.or br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $1 + local.get $51 i32.const 1 i32.add - local.set $1 - br $while-continue|060 + local.set $51 + br $while-continue|0140 end end i32.const 0 @@ -58662,9 +58891,9 @@ f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set 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/Float32Array,f32>|inlined.0 local.get $4 i32.load offset=8 @@ -58676,13 +58905,13 @@ local.get $4 i32.load offset=4 local.set $2 - loop $while-continue|062 - local.get $0 + loop $while-continue|0141 + 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 @@ -58691,17 +58920,17 @@ f32.const nan:0x400000 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|062 + local.set $1 + br $while-continue|0141 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -58712,28 +58941,26 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) i32.const 0 local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $1 i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop local.get $4 i32.load offset=4 local.set $0 - loop $while-continue|064 + loop $while-continue|029 local.get $1 - local.get $2 - i32.lt_s + local.get $52 + i32.gt_s if i32.const 1 - local.get $1 + local.get $52 i32.const 2 i32.shl local.get $0 @@ -58748,11 +58975,11 @@ i32.or br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $1 + local.get $52 i32.const 1 i32.add - local.set $1 - br $while-continue|064 + local.set $52 + br $while-continue|029 end end i32.const 0 @@ -58773,7 +59000,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58822,7 +59049,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -58830,7 +59057,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -58840,23 +59067,22 @@ 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 - br_if $folding-inner24 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -58868,7 +59094,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58917,7 +59143,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner12 local.get $1 call $~lib/typedarray/Uint8Array#toString local.set $1 @@ -58932,7 +59158,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -58944,7 +59170,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58993,7 +59219,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner12 local.get $1 call $~lib/typedarray/Uint8Array#toString local.set $1 @@ -59008,7 +59234,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59020,7 +59246,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59069,7 +59295,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59077,7 +59303,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59087,23 +59313,22 @@ 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 - br_if $folding-inner24 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59115,7 +59340,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59164,7 +59389,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59172,7 +59397,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59182,23 +59407,22 @@ 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 - br_if $folding-inner24 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59210,7 +59434,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59259,7 +59483,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59267,7 +59491,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59277,23 +59501,22 @@ 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 - br_if $folding-inner24 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59305,7 +59528,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59354,7 +59577,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59362,7 +59585,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59372,23 +59595,22 @@ i32.store local.get $1 call $~lib/typedarray/Uint32Array#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 - br_if $folding-inner24 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59400,7 +59622,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59449,7 +59671,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59457,7 +59679,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59467,23 +59689,22 @@ i32.store local.get $1 call $~lib/typedarray/Int64Array#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 - br_if $folding-inner24 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59495,7 +59716,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59544,7 +59765,7 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59552,7 +59773,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59562,23 +59783,22 @@ i32.store local.get $1 call $~lib/typedarray/Uint64Array#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 - br_if $folding-inner24 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59590,7 +59810,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59639,7 +59859,7 @@ i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner25 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59647,7 +59867,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59657,23 +59877,22 @@ 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 - br_if $folding-inner26 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59685,7 +59904,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59734,7 +59953,7 @@ i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner25 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59742,7 +59961,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59752,23 +59971,22 @@ 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 - br_if $folding-inner26 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59819,8 +60037,6 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59828,7 +60044,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59849,23 +60065,23 @@ call $~lib/typedarray/Int8Array#constructor local.tee $4 i32.store offset=4 - loop $for-loop|069 + loop $for-loop|035142 local.get $6 - local.get $9 + local.get $21 i32.gt_s if local.get $4 - local.get $9 + local.get $21 i32.const 10928 - local.get $9 + local.get $21 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $9 + local.get $21 i32.const 1 i32.add - local.set $9 - br $for-loop|069 + local.set $21 + br $for-loop|035142 end end global.get $~lib/memory/__stack_pointer @@ -59882,24 +60098,24 @@ 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - 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-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -59937,33 +60153,31 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $9 - loop $for-loop|171 + local.set $21 + loop $for-loop|139 local.get $6 - local.get $9 + local.get $21 i32.gt_s if local.get $4 - local.get $9 + local.get $21 call $~lib/typedarray/Int8Array#__get local.get $0 - local.get $9 + local.get $21 call $~lib/typedarray/Int8Array#__get i32.ne - br_if $folding-inner27 - local.get $9 + br_if $folding-inner17 + local.get $21 i32.const 1 i32.add - local.set $9 - br $for-loop|171 + local.set $21 + br $for-loop|139 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59971,7 +60185,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59992,24 +60206,24 @@ call $~lib/typedarray/Uint8Array#constructor local.tee $2 i32.store offset=4 - loop $for-loop|074 - local.get $1 + loop $for-loop|044 local.get $3 - i32.lt_s + local.get $22 + i32.gt_s if local.get $2 - local.get $1 + local.get $22 i32.const 10928 - local.get $1 + local.get $22 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $22 i32.const 1 i32.add - local.set $1 - br $for-loop|074 + local.set $22 + br $for-loop|044 end end global.get $~lib/memory/__stack_pointer @@ -60026,9 +60240,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 @@ -60042,33 +60256,31 @@ local.tee $0 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|177 - local.get $1 + local.set $22 + loop $for-loop|149 local.get $3 - i32.lt_s + local.get $22 + i32.gt_s if local.get $2 - local.get $1 + local.get $22 call $~lib/typedarray/Uint8Array#__get local.get $0 - local.get $1 + local.get $22 call $~lib/typedarray/Uint8Array#__get i32.ne - br_if $folding-inner27 - local.get $1 + br_if $folding-inner17 + local.get $22 i32.const 1 i32.add - local.set $1 - br $for-loop|177 + local.set $22 + br $for-loop|149 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $9 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60076,7 +60288,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60097,24 +60309,24 @@ call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $4 i32.store offset=4 - loop $for-loop|080131 + loop $for-loop|054 local.get $6 - local.get $9 + local.get $23 i32.gt_s if local.get $4 - local.get $9 + local.get $23 i32.const 10928 - local.get $9 + local.get $23 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $9 + local.get $23 i32.const 1 i32.add - local.set $9 - br $for-loop|080131 + local.set $23 + br $for-loop|054 end end global.get $~lib/memory/__stack_pointer @@ -60131,24 +60343,24 @@ 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - 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-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -60186,33 +60398,31 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $9 - loop $for-loop|183 + local.set $23 + loop $for-loop|159 local.get $6 - local.get $9 + local.get $23 i32.gt_s if local.get $4 - local.get $9 + local.get $23 call $~lib/typedarray/Uint8ClampedArray#__get local.get $0 - local.get $9 + local.get $23 call $~lib/typedarray/Uint8ClampedArray#__get i32.ne - br_if $folding-inner27 - local.get $9 + br_if $folding-inner17 + local.get $23 i32.const 1 i32.add - local.set $9 - br $for-loop|183 + local.set $23 + br $for-loop|159 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60220,7 +60430,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60241,23 +60451,23 @@ call $~lib/typedarray/Int16Array#constructor local.tee $4 i32.store offset=4 - loop $for-loop|086139 - local.get $1 + loop $for-loop|064200 local.get $6 - i32.lt_s + local.get $24 + i32.gt_s if local.get $4 - local.get $1 + local.get $24 i32.const 10928 - local.get $1 + local.get $24 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $24 i32.const 1 i32.add - local.set $1 - br $for-loop|086139 + local.set $24 + br $for-loop|064200 end end global.get $~lib/memory/__stack_pointer @@ -60274,24 +60484,24 @@ 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - 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-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -60302,7 +60512,7 @@ local.tee $1 i32.const 1 i32.and - br_if $folding-inner28 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 @@ -60331,33 +60541,31 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|189 - local.get $1 + local.set $24 + loop $for-loop|169 local.get $6 - i32.lt_s + local.get $24 + i32.gt_s if local.get $4 - local.get $1 + local.get $24 call $~lib/typedarray/Int16Array#__get local.get $0 - local.get $1 + local.get $24 call $~lib/typedarray/Int16Array#__get i32.ne - br_if $folding-inner27 - local.get $1 + br_if $folding-inner17 + local.get $24 i32.const 1 i32.add - local.set $1 - br $for-loop|189 + local.set $24 + br $for-loop|169 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60365,7 +60573,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60386,24 +60594,24 @@ call $~lib/typedarray/Uint16Array#constructor local.tee $4 i32.store offset=4 - loop $for-loop|092147 - local.get $1 + loop $for-loop|074 local.get $6 - i32.lt_s + local.get $25 + i32.gt_s if local.get $4 - local.get $1 + local.get $25 i32.const 10928 - local.get $1 + local.get $25 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $25 i32.const 1 i32.add - local.set $1 - br $for-loop|092147 + local.set $25 + br $for-loop|074 end end global.get $~lib/memory/__stack_pointer @@ -60420,24 +60628,24 @@ 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - 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-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -60448,7 +60656,7 @@ local.tee $1 i32.const 1 i32.and - br_if $folding-inner28 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 @@ -60477,33 +60685,31 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|195 - local.get $1 + local.set $25 + loop $for-loop|179 local.get $6 - i32.lt_s + local.get $25 + i32.gt_s if local.get $4 - local.get $1 + local.get $25 call $~lib/typedarray/Uint16Array#__get local.get $0 - local.get $1 + local.get $25 call $~lib/typedarray/Uint16Array#__get i32.ne - br_if $folding-inner27 - local.get $1 + br_if $folding-inner17 + local.get $25 i32.const 1 i32.add - local.set $1 - br $for-loop|195 + local.set $25 + br $for-loop|179 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60511,7 +60717,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60532,22 +60738,22 @@ call $~lib/typedarray/Int32Array#constructor local.tee $4 i32.store offset=4 - loop $for-loop|098155 - local.get $1 + loop $for-loop|084146 local.get $6 - i32.lt_s + local.get $26 + i32.gt_s if local.get $4 - local.get $1 + local.get $26 i32.const 10928 - local.get $1 + local.get $26 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $26 i32.const 1 i32.add - local.set $1 - br $for-loop|098155 + local.set $26 + br $for-loop|084146 end end global.get $~lib/memory/__stack_pointer @@ -60564,24 +60770,24 @@ 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - 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-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -60592,7 +60798,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner28 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 @@ -60621,33 +60827,31 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|1101 - local.get $1 + local.set $26 + loop $for-loop|189 local.get $6 - i32.lt_s + local.get $26 + i32.gt_s if local.get $4 - local.get $1 + local.get $26 call $~lib/typedarray/Int32Array#__get local.get $0 - local.get $1 + local.get $26 call $~lib/typedarray/Int32Array#__get i32.ne - br_if $folding-inner27 - local.get $1 + br_if $folding-inner17 + local.get $26 i32.const 1 i32.add - local.set $1 - br $for-loop|1101 + local.set $26 + br $for-loop|189 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60655,7 +60859,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60676,22 +60880,22 @@ call $~lib/typedarray/Uint32Array#constructor local.tee $4 i32.store offset=4 - loop $for-loop|0104163 - local.get $1 + loop $for-loop|094148 local.get $6 - i32.lt_s + local.get $27 + i32.gt_s if local.get $4 - local.get $1 + local.get $27 i32.const 10928 - local.get $1 + local.get $27 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $27 i32.const 1 i32.add - local.set $1 - br $for-loop|0104163 + local.set $27 + br $for-loop|094148 end end global.get $~lib/memory/__stack_pointer @@ -60708,24 +60912,24 @@ 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - 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-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -60736,7 +60940,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner28 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 @@ -60765,33 +60969,31 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|1107 - local.get $1 + local.set $27 + loop $for-loop|199 local.get $6 - i32.lt_s + local.get $27 + i32.gt_s if local.get $4 - local.get $1 + local.get $27 call $~lib/typedarray/Uint32Array#__get local.get $0 - local.get $1 + local.get $27 call $~lib/typedarray/Uint32Array#__get i32.ne - br_if $folding-inner27 - local.get $1 + br_if $folding-inner17 + local.get $27 i32.const 1 i32.add - local.set $1 - br $for-loop|1107 + local.set $27 + br $for-loop|199 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60799,7 +61001,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60820,23 +61022,23 @@ call $~lib/typedarray/Int64Array#constructor local.tee $4 i32.store offset=4 - loop $for-loop|0110 - local.get $1 + loop $for-loop|0104 local.get $6 - i32.lt_s + local.get $28 + i32.gt_s if local.get $4 - local.get $1 + local.get $28 i32.const 10928 - local.get $1 + local.get $28 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $28 i32.const 1 i32.add - local.set $1 - br $for-loop|0110 + local.set $28 + br $for-loop|0104 end end global.get $~lib/memory/__stack_pointer @@ -60853,24 +61055,24 @@ 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - 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-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -60881,7 +61083,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner28 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 @@ -60910,33 +61112,31 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|1113 - local.get $1 + local.set $28 + loop $for-loop|1109 local.get $6 - i32.lt_s + local.get $28 + i32.gt_s if local.get $4 - local.get $1 + local.get $28 call $~lib/typedarray/Int64Array#__get local.get $0 - local.get $1 + local.get $28 call $~lib/typedarray/Int64Array#__get i64.ne - br_if $folding-inner27 - local.get $1 + br_if $folding-inner17 + local.get $28 i32.const 1 i32.add - local.set $1 - br $for-loop|1113 + local.set $28 + br $for-loop|1109 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60944,7 +61144,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60965,23 +61165,23 @@ call $~lib/typedarray/Uint64Array#constructor local.tee $4 i32.store offset=4 - loop $for-loop|0116 - local.get $1 + loop $for-loop|0114151 local.get $6 - i32.lt_s + local.get $29 + i32.gt_s if local.get $4 - local.get $1 + local.get $29 i32.const 10928 - local.get $1 + local.get $29 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $29 i32.const 1 i32.add - local.set $1 - br $for-loop|0116 + local.set $29 + br $for-loop|0114151 end end global.get $~lib/memory/__stack_pointer @@ -60998,24 +61198,24 @@ 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - 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-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61026,7 +61226,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner28 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 @@ -61055,24 +61255,24 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $1 + local.set $29 loop $for-loop|1119 - local.get $1 local.get $6 - i32.lt_s + local.get $29 + i32.gt_s if local.get $4 - local.get $1 + local.get $29 call $~lib/typedarray/Uint64Array#__get local.get $0 - local.get $1 + local.get $29 call $~lib/typedarray/Uint64Array#__get i64.ne - br_if $folding-inner27 - local.get $1 + br_if $folding-inner17 + local.get $29 i32.const 1 i32.add - local.set $1 + local.set $29 br $for-loop|1119 end end @@ -61080,8 +61280,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61089,7 +61287,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61110,23 +61308,23 @@ call $~lib/typedarray/Float32Array#constructor local.tee $4 i32.store offset=4 - loop $for-loop|0122 - local.get $1 + loop $for-loop|0124 local.get $6 - i32.lt_s + local.get $30 + i32.gt_s if local.get $4 - local.get $1 + local.get $30 i32.const 10928 - local.get $1 + local.get $30 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $30 i32.const 1 i32.add - local.set $1 - br $for-loop|0122 + local.set $30 + br $for-loop|0124 end end global.get $~lib/memory/__stack_pointer @@ -61143,24 +61341,24 @@ 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - 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-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61171,7 +61369,7 @@ local.tee $1 i32.const 3 i32.and - br_if $folding-inner28 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 @@ -61200,33 +61398,31 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|1125 - local.get $1 + local.set $30 + loop $for-loop|1129 local.get $6 - i32.lt_s + local.get $30 + i32.gt_s if local.get $4 - local.get $1 + local.get $30 call $~lib/typedarray/Float32Array#__get local.get $0 - local.get $1 + local.get $30 call $~lib/typedarray/Float32Array#__get f32.ne - br_if $folding-inner27 - local.get $1 + br_if $folding-inner17 + local.get $30 i32.const 1 i32.add - local.set $1 - br $for-loop|1125 + local.set $30 + br $for-loop|1129 end end global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61234,7 +61430,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61255,23 +61451,23 @@ call $~lib/typedarray/Float64Array#constructor local.tee $4 i32.store offset=4 - loop $for-loop|0128 - local.get $1 + loop $for-loop|0134 local.get $6 - i32.lt_s + local.get $31 + i32.gt_s if local.get $4 - local.get $1 + local.get $31 i32.const 10928 - local.get $1 + local.get $31 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $31 i32.const 1 i32.add - local.set $1 - br $for-loop|0128 + local.set $31 + br $for-loop|0134 end end global.get $~lib/memory/__stack_pointer @@ -61288,24 +61484,24 @@ 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 i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - 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-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61316,7 +61512,7 @@ local.tee $1 i32.const 7 i32.and - br_if $folding-inner28 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 @@ -61345,25 +61541,25 @@ local.get $0 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|1131 - local.get $1 + local.set $31 + loop $for-loop|1139 local.get $6 - i32.lt_s + local.get $31 + i32.gt_s if local.get $4 - local.get $1 + local.get $31 call $~lib/typedarray/Float64Array#__get local.get $0 - local.get $1 + local.get $31 call $~lib/typedarray/Float64Array#__get f64.ne - br_if $folding-inner27 - local.get $1 + br_if $folding-inner17 + local.get $31 i32.const 1 i32.add - local.set $1 - br $for-loop|1131 + local.set $31 + br $for-loop|1139 end end global.get $~lib/memory/__stack_pointer @@ -61437,8 +61633,6 @@ i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - i32.const 0 - local.set $9 local.get $6 i32.load offset=8 local.get $0 @@ -61448,7 +61642,7 @@ i32.const 1 i32.add i32.lt_s - br_if $folding-inner29 + br_if $folding-inner20 local.get $6 i32.load offset=4 i32.const 1 @@ -61462,15 +61656,15 @@ i32.const 2 i32.shr_u local.set $0 - loop $for-loop|0135 + loop $for-loop|0145 local.get $0 - local.get $9 + local.get $48 i32.gt_s if local.get $2 - local.get $9 + local.get $48 i32.add - local.get $9 + local.get $48 i32.const 2 i32.shl local.get $1 @@ -61492,19 +61686,17 @@ i32.const 0 end i32.store8 - local.get $9 + local.get $48 i32.const 1 i32.add - local.set $9 - br $for-loop|0135 + local.set $48 + br $for-loop|0145 end end local.get $6 local.get $3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - i32.const 0 - local.set $9 local.get $6 i32.load offset=8 local.get $4 @@ -61514,7 +61706,7 @@ i32.const 8 i32.add i32.lt_s - br_if $folding-inner29 + br_if $folding-inner20 local.get $6 i32.load offset=4 i32.const 8 @@ -61528,26 +61720,26 @@ i32.const 2 i32.shr_u local.set $1 - loop $for-loop|0139 + loop $for-loop|0151 local.get $1 - local.get $9 + local.get $49 i32.gt_s if local.get $3 - local.get $9 + local.get $49 i32.add - i32.const 255 - local.get $9 + local.get $49 i32.const 2 i32.shl local.get $2 i32.add i32.load local.tee $0 + i32.const 255 + local.get $0 i32.sub i32.const 31 i32.shr_s - local.get $0 i32.or local.get $0 i32.const 31 @@ -61556,11 +61748,11 @@ i32.xor i32.and i32.store8 - local.get $9 + local.get $49 i32.const 1 i32.add - local.set $9 - br $for-loop|0139 + local.set $49 + br $for-loop|0151 end end i32.const 10 @@ -61617,8 +61809,6 @@ i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set - i32.const 0 - local.set $9 local.get $6 i32.load offset=8 local.get $0 @@ -61626,7 +61816,7 @@ i32.const 2 i32.shr_u i32.lt_s - br_if $folding-inner29 + br_if $folding-inner20 local.get $6 i32.load offset=4 local.set $3 @@ -61638,16 +61828,16 @@ i32.const 2 i32.shr_u local.set $1 - loop $for-loop|0143 + loop $for-loop|0157 local.get $1 - local.get $9 + local.get $50 i32.gt_s if local.get $3 - local.get $9 + local.get $50 i32.add i32.const 255 - local.get $9 + local.get $50 i32.const 2 i32.shl local.get $2 @@ -61659,11 +61849,11 @@ i32.gt_u select i32.store8 - local.get $9 + local.get $50 i32.const 1 i32.add - local.set $9 - br $for-loop|0143 + local.set $50 + br $for-loop|0157 end end local.get $6 @@ -61682,8 +61872,6 @@ local.get $6 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -61691,7 +61879,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61716,9 +61904,11 @@ i32.const 0 i32.const 3 call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -61726,7 +61916,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61739,7 +61929,7 @@ unreachable end i32.const 15344 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15344 i32.store @@ -61748,7 +61938,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 @@ -61761,19 +61951,19 @@ call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15376 i32.store offset=8 @@ -61788,25 +61978,23 @@ call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer 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 @@ -61814,7 +62002,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61839,9 +62027,11 @@ i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -61849,20 +62039,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1161 - block $0of1162 - block $outOfRange163 + block $1of1157 + block $0of1158 + block $outOfRange159 global.get $~argumentsLength - br_table $0of1162 $1of1161 $outOfRange163 + br_table $0of1158 $1of1157 $outOfRange159 end unreachable end i32.const 15408 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15408 i32.store @@ -61871,7 +62061,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 @@ -61884,19 +62074,19 @@ call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15440 i32.store offset=8 @@ -61911,25 +62101,23 @@ call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer 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 @@ -61937,7 +62125,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -61962,9 +62150,11 @@ i32.const 0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -61972,20 +62162,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1164 - block $0of1165 - block $outOfRange166 + block $1of1161 + block $0of1162 + block $outOfRange163 global.get $~argumentsLength - br_table $0of1165 $1of1164 $outOfRange166 + br_table $0of1162 $1of1161 $outOfRange163 end unreachable end i32.const 15472 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15472 i32.store @@ -61994,7 +62184,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 @@ -62007,19 +62197,19 @@ call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15504 i32.store offset=8 @@ -62034,19 +62224,19 @@ call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62058,7 +62248,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62083,11 +62273,11 @@ i32.const 0 i32.const 3 call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62095,20 +62285,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1167 - block $0of1168 - block $outOfRange199 + block $1of131 + block $0of132 + block $outOfRange33 global.get $~argumentsLength - br_table $0of1168 $1of1167 $outOfRange199 + br_table $0of132 $1of131 $outOfRange33 end unreachable end i32.const 15536 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 15536 i32.store @@ -62119,7 +62309,7 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.get $9 + local.get $13 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62132,19 +62322,19 @@ call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $1 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $1 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15568 i32.store offset=8 @@ -62161,19 +62351,19 @@ call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $1 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $1 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62185,7 +62375,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62210,11 +62400,11 @@ i32.const 0 i32.const 3 call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62222,20 +62412,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1202 - block $0of1203 - block $outOfRange204 + block $1of135 + block $0of136 + block $outOfRange37 global.get $~argumentsLength - br_table $0of1203 $1of1202 $outOfRange204 + br_table $0of136 $1of135 $outOfRange37 end unreachable end i32.const 15600 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 15600 i32.store @@ -62246,7 +62436,7 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.get $9 + local.get $13 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62259,19 +62449,19 @@ call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $1 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $1 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15632 i32.store offset=8 @@ -62288,19 +62478,19 @@ call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $1 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $1 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62312,7 +62502,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62337,11 +62527,11 @@ i32.const 0 i32.const 3 call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62349,20 +62539,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1207 - block $0of1208 - block $outOfRange209 + block $1of139 + block $0of140 + block $outOfRange41 global.get $~argumentsLength - br_table $0of1208 $1of1207 $outOfRange209 + br_table $0of140 $1of139 $outOfRange41 end unreachable end i32.const 15664 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 15664 i32.store @@ -62373,7 +62563,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.get $9 + local.get $13 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62386,19 +62576,19 @@ call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $1 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $1 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15696 i32.store offset=8 @@ -62415,19 +62605,19 @@ call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $1 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $1 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62439,7 +62629,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62464,11 +62654,11 @@ i32.const 0 i32.const 3 call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62476,20 +62666,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1212 - block $0of1213 - block $outOfRange214 + block $1of143 + block $0of144 + block $outOfRange45 global.get $~argumentsLength - br_table $0of1213 $1of1212 $outOfRange214 + br_table $0of144 $1of143 $outOfRange45 end unreachable end i32.const 15728 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 15728 i32.store @@ -62500,7 +62690,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.get $9 + local.get $13 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62513,19 +62703,19 @@ call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $1 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $1 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15760 i32.store offset=8 @@ -62542,19 +62732,19 @@ call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $1 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $1 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62566,7 +62756,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62591,11 +62781,11 @@ i32.const 0 i64.const 3 call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62603,20 +62793,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1217 - block $0of1218 - block $outOfRange219 + block $1of147 + block $0of148 + block $outOfRange49 global.get $~argumentsLength - br_table $0of1218 $1of1217 $outOfRange219 + br_table $0of148 $1of147 $outOfRange49 end unreachable end i32.const 15792 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 15792 i32.store @@ -62627,7 +62817,7 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.get $9 + local.get $13 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62640,19 +62830,19 @@ call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $1 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $1 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15824 i32.store offset=8 @@ -62669,19 +62859,19 @@ call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $1 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $1 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62693,7 +62883,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62718,11 +62908,11 @@ i32.const 0 i64.const 3 call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62730,20 +62920,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1222 - block $0of1223 - block $outOfRange224 + block $1of151 + block $0of152 + block $outOfRange53 global.get $~argumentsLength - br_table $0of1223 $1of1222 $outOfRange224 + br_table $0of152 $1of151 $outOfRange53 end unreachable end i32.const 15856 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 15856 i32.store @@ -62754,7 +62944,7 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.get $9 + local.get $13 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62767,19 +62957,19 @@ call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $1 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $1 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15888 i32.store offset=8 @@ -62796,19 +62986,19 @@ call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $1 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $1 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62820,7 +63010,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62845,11 +63035,11 @@ i32.const 0 f32.const 3 call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer i32.const 0 global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62857,20 +63047,20 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1227 - block $0of1228 - block $outOfRange229 + block $1of155 + block $0of156 + block $outOfRange57 global.get $~argumentsLength - br_table $0of1228 $1of1227 $outOfRange229 + br_table $0of156 $1of155 $outOfRange57 end unreachable end i32.const 15920 - local.set $9 + local.set $13 global.get $~lib/memory/__stack_pointer i32.const 15920 i32.store @@ -62881,7 +63071,7 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.get $9 + local.get $13 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -62894,19 +63084,19 @@ call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $1 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $1 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15952 i32.store offset=8 @@ -62923,19 +63113,19 @@ call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $1 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $1 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62947,7 +63137,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62984,19 +63174,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner30 + br_if $folding-inner36 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner31 + br_if $folding-inner37 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner32 + br_if $folding-inner38 global.get $~lib/memory/__stack_pointer i32.const 15984 i32.store offset=8 @@ -63013,19 +63203,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner33 + br_if $folding-inner39 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner34 + br_if $folding-inner40 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner35 + br_if $folding-inner41 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63036,12 +63226,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0145176 + loop $while-continue|0161 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0145176 + br $while-continue|0161 end end end @@ -63071,213 +63261,213 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 323 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 323 + i32.const 344 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 344 + i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 345 + i32.const 346 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 346 + i32.const 367 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 367 + i32.const 541 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 388 - i32.const 3 + i32.const 675 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 389 - i32.const 3 + i32.const 676 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 390 - i32.const 3 + i32.const 672 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 438 - i32.const 3 + i32.const 673 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 440 - i32.const 3 + i32.const 730 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 461 - i32.const 3 + i32.const 1056 + i32.const 1632 + i32.const 1875 + i32.const 9 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 463 - i32.const 3 + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 484 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 486 + i32.const 389 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 507 + i32.const 390 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 509 - i32.const 3 + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 541 + i32.const 438 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 570 - i32.const 5 + i32.const 440 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 575 + i32.const 461 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 576 + i32.const 463 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 577 + i32.const 484 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 578 + i32.const 486 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 675 - i32.const 5 + i32.const 507 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 676 - i32.const 5 + i32.const 509 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 672 + i32.const 570 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 673 - i32.const 5 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 730 - i32.const 5 + i32.const 576 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1056 - i32.const 1632 - i32.const 1875 - i32.const 9 + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 call $~lib/builtins/abort unreachable end @@ -63868,32 +64058,32 @@ 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 i32.const 2 i32.shr_u - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 local.get $0 i32.load - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 if - local.get $4 local.get $5 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $5 local.get $0 i32.load offset=4 local.get $1 @@ -63901,7 +64091,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $0 i32.const 0 @@ -63911,9 +64101,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 @@ -63922,13 +64112,13 @@ i32.shl i32.add i32.store offset=4 - local.get $4 + local.get $5 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -63938,9 +64128,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 @@ -63959,7 +64149,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 ) (func $~lib/typedarray/Float64Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -63981,32 +64171,32 @@ 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 i32.const 3 i32.shr_u - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 local.get $0 i32.load - local.tee $5 + local.tee $3 i32.store - local.get $5 + local.get $3 if - local.get $4 local.get $5 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 + local.get $5 local.get $0 i32.load offset=4 local.get $1 @@ -64014,7 +64204,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $0 i32.const 0 @@ -64024,9 +64214,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 @@ -64035,13 +64225,13 @@ i32.shl i32.add i32.store offset=4 - local.get $4 + local.get $5 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -64051,9 +64241,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 @@ -64072,7 +64262,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $5 ) (func $~lib/typedarray/Float64Array#sort@varargs (param $0 i32) (result i32) (local $1 i32) @@ -64144,13 +64334,10 @@ local.tee $4 i32.const 0 i32.store - local.get $4 local.get $0 local.get $1 i32.shl - local.tee $4 - local.set $1 - local.get $4 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new local.set $5 @@ -64161,34 +64348,35 @@ local.get $1 call $~lib/memory/memory.copy end + local.get $4 local.get $5 i32.store i32.const 16 local.get $2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 local.get $5 i32.store local.get $5 if - local.get $1 + local.get $2 local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $1 + local.get $2 local.get $5 i32.store offset=4 + local.get $2 local.get $1 - local.get $4 i32.store offset=8 - local.get $1 + 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 $1 + local.get $2 ) (func $~lib/typedarray/Int8Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -64210,92 +64398,92 @@ 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 $4 + local.get $3 i32.const 12 i32.const 3 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 $5 i32.store local.get $5 if - local.get $4 + local.get $3 local.get $5 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $4 - local.get $0 - i32.load offset=4 + local.get $3 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 $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s 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 - local.tee $0 + local.tee $1 + local.get $0 + i32.load offset=4 i32.add i32.store offset=4 - local.get $4 + local.get $3 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $3 + local.get $4 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 $2 - local.get $3 + local.get $4 local.get $2 - local.get $3 + local.get $4 i32.lt_s select end - local.tee $1 - local.get $0 + local.tee $0 + local.get $1 local.get $0 local.get $1 - i32.lt_s + i32.gt_s select - local.get $0 + local.get $1 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 $4 + local.get $3 ) (func $~lib/typedarray/Int32Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -64426,20 +64614,20 @@ i32.const 12 i32.const 4 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 $4 + local.tee $3 i32.store - local.get $4 + local.get $3 if - local.get $3 local.get $4 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 local.get $0 i32.load offset=4 i32.const 4 @@ -64451,7 +64639,7 @@ local.tee $0 i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $1 i32.const 0 i32.lt_s @@ -64486,7 +64674,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -64518,20 +64706,20 @@ i32.const 12 i32.const 5 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 $4 + local.tee $3 i32.store - local.get $4 + local.get $3 if - local.get $3 local.get $4 + local.get $3 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 local.get $0 i32.load offset=4 i32.const 4 @@ -64543,7 +64731,7 @@ local.tee $0 i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $1 i32.const 0 i32.lt_s @@ -64578,7 +64766,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -64600,37 +64788,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.const 12 i32.const 6 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 $4 + local.tee $2 i32.store - local.get $4 + local.get $2 if - local.get $3 local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 local.get $0 i32.load offset=4 i32.const 4 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 4 i32.gt_u select @@ -64639,13 +64827,13 @@ i32.shl i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -64655,9 +64843,9 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end @@ -64676,7 +64864,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -64698,37 +64886,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.const 12 i32.const 7 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 $4 + local.tee $2 i32.store - local.get $4 + local.get $2 if - local.get $3 local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 local.get $0 i32.load offset=4 i32.const 4 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 4 i32.gt_u select @@ -64737,13 +64925,13 @@ i32.shl i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -64753,9 +64941,9 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end @@ -64774,7 +64962,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -64796,37 +64984,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.const 12 i32.const 9 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 $4 + local.tee $2 i32.store - local.get $4 + local.get $2 if - local.get $3 local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 local.get $0 i32.load offset=4 i32.const 4 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 4 i32.gt_u select @@ -64835,13 +65023,13 @@ i32.shl i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -64851,9 +65039,9 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end @@ -64872,7 +65060,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -64894,37 +65082,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.const 12 i32.const 10 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 $4 + local.tee $2 i32.store - local.get $4 + local.get $2 if - local.get $3 local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 local.get $0 i32.load offset=4 i32.const 4 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 4 i32.gt_u select @@ -64933,13 +65121,13 @@ i32.shl i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -64949,9 +65137,9 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end @@ -64970,7 +65158,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -64992,37 +65180,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.const 12 i32.const 11 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 $4 + local.tee $2 i32.store - local.get $4 + local.get $2 if - local.get $3 local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 local.get $0 i32.load offset=4 i32.const 4 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 4 i32.gt_u select @@ -65031,13 +65219,13 @@ i32.shl i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -65047,9 +65235,9 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end @@ -65068,7 +65256,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65090,37 +65278,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.const 12 i32.const 12 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 $4 + local.tee $2 i32.store - local.get $4 + local.get $2 if - local.get $3 local.get $4 + local.get $2 call $byn-split-outlined-A$~lib/rt/itcms/__link end - local.get $3 + local.get $4 local.get $0 i32.load offset=4 i32.const 4 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 4 i32.gt_u select @@ -65129,13 +65317,13 @@ i32.shl i32.add i32.store offset=4 - local.get $3 + local.get $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $2 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -65145,9 +65333,9 @@ select else local.get $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.lt_s select end @@ -65166,7 +65354,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/util/number/itoa32 (param $0 i32) (result i32) (local $1 i32) @@ -65208,71 +65396,70 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 - select local.tee $0 - local.tee $1 + select + local.tee $3 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 $2 + local.get $0 i32.add - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - local.get $0 + local.get $2 local.get $3 + local.get $1 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $0 if - local.get $1 + local.get $2 i32.const 45 i32.store16 end @@ -65280,7 +65467,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65305,50 +65492,44 @@ i32.const 0 i32.store i32.const 0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $2 - i32.const 0 - i32.gt_u - select - local.tee $3 local.get $1 i32.const 0 local.get $1 i32.const 0 i32.gt_s select + local.tee $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u local.tee $1 - local.get $2 local.get $1 local.get $2 - i32.lt_s + i32.gt_s select - local.tee $1 - local.get $1 - local.get $3 + local.tee $2 + local.get $2 + i32.const 0 i32.gt_s select i32.const 1 i32.shl - local.set $4 - local.get $3 - local.get $1 - local.get $1 - local.get $3 + local.set $3 + i32.const 0 + local.get $2 + local.get $2 + i32.const 0 i32.lt_s select i32.const 1 i32.shl - local.tee $1 - local.get $4 + local.tee $4 + local.get $3 i32.sub - local.tee $3 + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -65359,12 +65540,12 @@ return end i32.const 0 - local.get $2 + local.get $1 i32.const 1 i32.shl - local.get $1 - i32.eq local.get $4 + i32.eq + local.get $3 select if global.get $~lib/memory/__stack_pointer @@ -65375,16 +65556,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store local.get $1 local.get $0 - local.get $4 - i32.add local.get $3 + i32.add + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -65553,22 +65734,22 @@ call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 - i32.const 9808 local.get $1 + i32.const 9808 + local.get $2 call $~lib/memory/memory.copy 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/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index c77e1bd517..26d3543049 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -793,38 +793,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1250,11 +1248,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1265,15 +1263,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1451,8 +1450,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2834,11 +2833,10 @@ i32.or i32.store offset=2 else - local.get $3 local.get $6 i32.const 65536 i32.lt_u - if + if (result i32) local.get $3 local.get $7 i32.add @@ -2869,6 +2867,9 @@ i32.shl i32.or i32.store offset=2 + local.get $7 + i32.const 6 + i32.add else local.get $3 local.get $7 @@ -2904,12 +2905,12 @@ local.get $7 i32.const 6 i32.add - local.tee $7 - i32.add local.tee $5 + i32.add + local.tee $7 i32.const 37 i32.store16 - local.get $5 + local.get $7 local.get $6 i32.const 12 i32.shr_u @@ -2917,13 +2918,13 @@ i32.and i32.const 128 i32.or - local.tee $5 + local.tee $7 i32.const 4 i32.shr_u i32.const 1676 i32.add i32.load8_u - local.get $5 + local.get $7 i32.const 15 i32.and i32.const 1676 @@ -2933,11 +2934,12 @@ i32.shl i32.or i32.store offset=2 + local.get $5 + i32.const 6 + i32.add end - local.get $7 - i32.const 6 - i32.add local.tee $7 + local.get $3 i32.add local.tee $5 i32.const 37 @@ -2967,11 +2969,11 @@ i32.or i32.store offset=2 end - local.get $3 local.get $7 i32.const 6 i32.add local.tee $7 + local.get $3 i32.add local.tee $5 i32.const 37 @@ -3026,6 +3028,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -3057,50 +3060,50 @@ i32.shr_u i32.ne if - i32.const 0 - return - end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + i32.const 0 + return + end + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -3111,17 +3114,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -3134,7 +3136,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/util/uri/decode (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -3633,7 +3637,6 @@ ) (func $start:std/uri (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3700,10 +3703,9 @@ call $~lib/util/uri/encode 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=4 local.get $0 @@ -3730,10 +3732,9 @@ call $~lib/util/uri/encode 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 1760 i32.store offset=4 local.get $0 @@ -3760,10 +3761,9 @@ call $~lib/util/uri/encode 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 1792 i32.store offset=4 local.get $0 @@ -3790,10 +3790,9 @@ call $~lib/util/uri/encode 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 1824 i32.store offset=4 local.get $0 @@ -3820,10 +3819,9 @@ call $~lib/util/uri/encode 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 1856 i32.store offset=4 local.get $0 @@ -3850,10 +3848,9 @@ call $~lib/util/uri/encode 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 1984 i32.store offset=4 local.get $0 @@ -3880,10 +3877,9 @@ call $~lib/util/uri/encode 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 2048 i32.store offset=4 local.get $0 @@ -3950,10 +3946,9 @@ call $~lib/util/uri/encode 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 2272 i32.store offset=4 local.get $0 @@ -3980,10 +3975,9 @@ call $~lib/util/uri/encode 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 2336 i32.store offset=4 local.get $0 @@ -4010,10 +4004,9 @@ call $~lib/util/uri/encode 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 2416 i32.store offset=4 local.get $0 @@ -4040,10 +4033,9 @@ call $~lib/util/uri/encode 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 2544 i32.store offset=4 local.get $0 @@ -4070,10 +4062,9 @@ call $~lib/util/uri/encode 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 2688 i32.store offset=4 local.get $0 @@ -4100,10 +4091,9 @@ call $~lib/util/uri/encode 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 2768 i32.store offset=4 local.get $0 @@ -4130,10 +4120,9 @@ call $~lib/util/uri/encode 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 2848 i32.store offset=4 local.get $0 @@ -4160,10 +4149,9 @@ call $~lib/util/uri/encode 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 2960 i32.store offset=4 local.get $0 @@ -4190,10 +4178,9 @@ call $~lib/util/uri/encode 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 3072 i32.store offset=4 local.get $0 @@ -4220,10 +4207,9 @@ call $~lib/util/uri/encode 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 3264 i32.store offset=4 local.get $0 @@ -4250,10 +4236,9 @@ call $~lib/util/uri/encode 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=4 local.get $0 @@ -4280,10 +4265,9 @@ call $~lib/util/uri/encode 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 1760 i32.store offset=4 local.get $0 @@ -4310,10 +4294,9 @@ call $~lib/util/uri/encode 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 3504 i32.store offset=4 local.get $0 @@ -4340,10 +4323,9 @@ call $~lib/util/uri/encode 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 1856 i32.store offset=4 local.get $0 @@ -4370,10 +4352,9 @@ call $~lib/util/uri/encode 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 3584 i32.store offset=4 local.get $0 @@ -4400,10 +4381,9 @@ call $~lib/util/uri/encode 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 2688 i32.store offset=4 local.get $0 @@ -4430,10 +4410,9 @@ call $~lib/util/uri/encode 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 2768 i32.store offset=4 local.get $0 @@ -4460,10 +4439,9 @@ call $~lib/util/uri/encode 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 2960 i32.store offset=4 local.get $0 @@ -4490,10 +4468,9 @@ call $~lib/util/uri/encode 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 3152 i32.store offset=4 local.get $0 @@ -4520,10 +4497,9 @@ call $~lib/util/uri/decode 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=4 local.get $0 @@ -4550,10 +4526,9 @@ call $~lib/util/uri/decode 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 1760 i32.store offset=4 local.get $0 @@ -4580,10 +4555,9 @@ call $~lib/util/uri/decode 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 3680 i32.store offset=4 local.get $0 @@ -4610,10 +4584,9 @@ call $~lib/util/uri/decode 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 3744 i32.store offset=4 local.get $0 @@ -4640,10 +4613,9 @@ call $~lib/util/uri/decode 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 3776 i32.store offset=4 local.get $0 @@ -4670,10 +4642,9 @@ call $~lib/util/uri/decode 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 2736 i32.store offset=4 local.get $0 @@ -4700,10 +4671,9 @@ call $~lib/util/uri/decode 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 3888 i32.store offset=4 local.get $0 @@ -4730,10 +4700,9 @@ call $~lib/util/uri/decode 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 3888 i32.store offset=4 local.get $0 @@ -4760,10 +4729,9 @@ call $~lib/util/uri/decode 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 3152 i32.store offset=4 local.get $0 @@ -4790,10 +4758,9 @@ call $~lib/util/uri/decode 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 2384 i32.store offset=4 local.get $0 @@ -4820,10 +4787,9 @@ call $~lib/util/uri/decode 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=4 local.get $0 @@ -4850,10 +4816,9 @@ call $~lib/util/uri/decode 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 1760 i32.store offset=4 local.get $0 @@ -4880,10 +4845,9 @@ call $~lib/util/uri/decode 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 3648 i32.store offset=4 local.get $0 @@ -4910,10 +4874,9 @@ call $~lib/util/uri/decode 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 4176 i32.store offset=4 local.get $0 @@ -4940,10 +4903,9 @@ call $~lib/util/uri/decode 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 4240 i32.store offset=4 local.get $0 @@ -4970,10 +4932,9 @@ call $~lib/util/uri/decode 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 3776 i32.store offset=4 local.get $0 @@ -5000,10 +4961,9 @@ call $~lib/util/uri/decode 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 2736 i32.store offset=4 local.get $0 @@ -5030,10 +4990,9 @@ call $~lib/util/uri/decode 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 3808 i32.store offset=4 local.get $0 @@ -5060,10 +5019,9 @@ call $~lib/util/uri/decode 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 2384 i32.store offset=4 local.get $0 @@ -5090,10 +5048,9 @@ call $~lib/util/uri/decode 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 4272 i32.store offset=4 local.get $0 @@ -5120,10 +5077,9 @@ call $~lib/util/uri/decode 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 4320 i32.store offset=4 local.get $0 @@ -5150,10 +5106,9 @@ call $~lib/util/uri/decode 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 4016 i32.store offset=4 local.get $0 @@ -5216,19 +5171,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -5238,22 +5193,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 20748 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -5267,7 +5222,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -5279,7 +5234,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -5287,15 +5242,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -5303,7 +5258,7 @@ else i32.const 4336 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1376 @@ -5313,7 +5268,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 4340 @@ -5331,25 +5286,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index cb404d4a83..3244d03beb 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -686,38 +686,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -1045,13 +1043,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1142,17 +1140,17 @@ call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $4 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $4 + local.tee $3 i32.const 16 i32.ge_u if local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.and i32.const 28 @@ -1161,19 +1159,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 - local.get $4 + local.tee $4 + local.get $3 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 $1 - local.get $3 + local.get $4 i32.const -2 i32.and i32.store @@ -1203,8 +1201,8 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1268,11 +1266,11 @@ ) (func $~start (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - 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 1484 i32.lt_s @@ -1357,10 +1355,9 @@ local.get $0 global.set $super-inline/bar global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $super-inline/bar i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1415,19 +1412,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1437,22 +1434,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17868 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1466,7 +1463,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1478,7 +1475,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1486,15 +1483,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1502,7 +1499,7 @@ else i32.const 1440 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1248 @@ -1512,7 +1509,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -1530,25 +1527,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index 0df9b0401a..274cd08f73 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -140,6 +140,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -174,47 +175,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -225,17 +226,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -248,7 +248,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/rt/itcms/visitRoots @@ -404,19 +406,17 @@ i32.const 32 i32.and end - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end local.set $3 local.get $2 i32.load offset=8 local.set $1 local.get $0 local.get $2 + global.get $~lib/rt/itcms/white + i32.eqz + i32.const 2 local.get $3 + select i32.or i32.store offset=4 local.get $0 @@ -1028,38 +1028,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -1075,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 $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 - 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) @@ -1485,11 +1483,11 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 local.get $0 i32.const 16 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -1500,15 +1498,16 @@ call $~lib/builtins/abort unreachable end + local.get $5 i32.const 12 - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 i32.and i32.const 4 i32.sub - local.get $3 + local.get $2 i32.const 12 i32.le_u select @@ -1686,8 +1685,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2887,12 +2886,12 @@ end global.get $~lib/memory/__stack_pointer local.get $1 + local.get $5 i32.const 1180 i32.load i32.const 1 i32.shr_u local.tee $1 - local.get $5 i32.mul i32.add i32.const 1 @@ -3106,25 +3105,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/util/number/itoa32 (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 5732 - i32.lt_s - if - i32.const 22144 - i32.const 22192 - 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 5732 + i32.lt_s + if + i32.const 22144 + i32.const 22192 + 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/itoa32 local.get $0 i32.eqz if @@ -3133,6 +3132,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 2032 + local.set $0 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -3145,7 +3145,6 @@ i32.shr_u local.tee $2 select - local.tee $0 local.tee $1 i32.const 100000 i32.lt_u @@ -3199,15 +3198,15 @@ 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 $1 local.get $3 call $~lib/util/number/utoa32_dec_lut local.get $2 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -3215,13 +3214,13 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result 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) @@ -3245,12 +3244,11 @@ i64.sub local.tee $12 i64.and - local.set $6 + local.set $7 local.get $1 local.get $0 i64.shr_u i32.wrap_i64 - local.tee $2 local.tee $5 i32.const 100000 i32.lt_u @@ -3297,9 +3295,9 @@ i32.add end end - local.set $8 + local.set $2 loop $while-continue|0 - local.get $8 + local.get $2 i32.const 0 i32.gt_s if @@ -3315,137 +3313,137 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $8 + local.get $2 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 end - local.get $2 + local.get $5 i32.const 1000000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 1000 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 1000 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 100 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 100 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 + local.get $5 i32.const 10 i32.div_u - local.set $5 - local.get $2 + local.set $6 + local.get $5 i32.const 10 i32.rem_u - local.set $2 + local.set $5 br $break|1 end - local.get $2 - local.set $5 + local.get $5 + local.set $6 i32.const 0 - local.set $2 + local.set $5 br $break|1 end i32.const 0 - local.set $5 + local.set $6 end local.get $4 - local.get $5 + local.get $6 i32.or if local.get $4 - local.tee $7 + local.tee $8 i32.const 1 i32.add local.set $4 - local.get $7 + local.get $8 i32.const 1 i32.shl i32.const 3920 i32.add - local.get $5 + local.get $6 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 - local.get $6 - local.get $2 + local.set $2 + local.get $7 + local.get $5 i64.extend_i32_u local.get $10 i64.extend_i32_s @@ -3455,11 +3453,11 @@ local.get $3 i64.le_u if - local.get $8 + local.get $2 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $8 + local.get $2 i32.const 2 i32.shl i32.const 4848 @@ -3474,9 +3472,9 @@ i32.shl i32.const 3918 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|3 local.get $0 local.get $9 @@ -3494,11 +3492,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 @@ -3506,10 +3504,10 @@ i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $1 i64.add @@ -3517,8 +3515,8 @@ br $while-continue|3 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 return @@ -3531,7 +3529,7 @@ i64.const 10 i64.mul local.set $3 - local.get $6 + local.get $7 i64.const 10 i64.mul local.tee $0 @@ -3546,11 +3544,11 @@ i64.ne if local.get $4 - local.tee $2 + local.tee $5 i32.const 1 i32.add local.set $4 - local.get $2 + local.get $5 i32.const 1 i32.shl i32.const 3920 @@ -3563,26 +3561,26 @@ i32.add i32.store16 end - local.get $8 + local.get $2 i32.const 1 i32.sub - local.set $8 + local.set $2 local.get $3 local.get $0 local.get $12 i64.and - local.tee $6 + local.tee $7 i64.le_u br_if $while-continue|4 end - local.get $8 + local.get $2 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 $8 + local.get $2 i32.sub i32.const 2 i32.shl @@ -3597,9 +3595,9 @@ i32.shl i32.const 3918 i32.add - local.tee $2 + local.tee $5 i32.load16_u - local.set $5 + local.set $2 loop $while-continue|6 local.get $0 local.get $1 @@ -3617,22 +3615,22 @@ 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 i32.const 0 end if - local.get $5 + local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $2 local.get $0 local.get $11 i64.add @@ -3640,8 +3638,8 @@ br $while-continue|6 end end - local.get $2 local.get $5 + local.get $2 i32.store16 local.get $4 ) @@ -4254,25 +4252,25 @@ (func $~lib/number/F64#toString (param $0 f64) (result i32) (local $1 i32) (local $2 i32) - block $__inlined_func$~lib/util/number/dtoa (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 5732 - i32.lt_s - if - i32.const 22144 - i32.const 22192 - 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 5732 + i32.lt_s + if + i32.const 22144 + i32.const 22192 + 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/dtoa local.get $0 f64.const 0 f64.eq @@ -4282,6 +4280,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3776 + local.set $1 br $__inlined_func$~lib/util/number/dtoa end local.get $0 @@ -4299,6 +4298,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3808 + local.set $1 br $__inlined_func$~lib/util/number/dtoa end global.get $~lib/memory/__stack_pointer @@ -4311,72 +4311,73 @@ f64.const 0 f64.lt select + local.set $1 br $__inlined_func$~lib/util/number/dtoa end local.get $0 call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 - i32.const 3920 local.get $1 + i32.const 3920 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $1 ) (func $start:templateliteral (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + memory.size + i32.const 16 + i32.shl + i32.const 22116 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1332 + i32.const 1328 + i32.store + i32.const 1336 + i32.const 1328 + i32.store + i32.const 1328 + global.set $~lib/rt/itcms/pinSpace + i32.const 1364 + i32.const 1360 + i32.store + i32.const 1368 + i32.const 1360 + i32.store + i32.const 1360 + global.set $~lib/rt/itcms/toSpace + i32.const 1508 + i32.const 1504 + i32.store + i32.const 1512 + i32.const 1504 + i32.store + i32.const 1504 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - memory.size - i32.const 16 - i32.shl - i32.const 22116 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/pinSpace - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/toSpace - i32.const 1508 - i32.const 1504 - i32.store - i32.const 1512 - i32.const 1504 - i32.store - i32.const 1504 - global.set $~lib/rt/itcms/fromSpace - 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 5732 i32.lt_s @@ -4791,18 +4792,18 @@ end local.get $2 call $templateliteral/Ref#toString - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=16 local.get $0 call $templateliteral/Ref#toString - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 local.get $1 + i32.store offset=20 local.get $3 + local.get $1 call $~lib/string/String#concat local.set $1 global.get $~lib/memory/__stack_pointer @@ -5353,34 +5354,21 @@ global.get $~lib/memory/__stack_pointer i32.const 5616 i32.store offset=12 - i32.const 5620 - local.get $0 - i32.store + i32.const 5616 + i32.const 1 local.get $0 - if - i32.const 5616 - local.get $0 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset global.get $~lib/memory/__stack_pointer i32.const 5616 i32.store offset=12 - i32.const 5628 - local.get $1 - i32.store + i32.const 5616 + i32.const 3 local.get $1 - if - i32.const 5616 - local.get $1 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end + call $~lib/staticarray/StaticArray<~lib/string/String>#__uset global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 5616 i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store offset=16 i32.const 5616 diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index fc72802671..916ccc9c2e 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -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 @@ -963,143 +963,145 @@ (func $~start (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1756 - i32.lt_s - br_if $folding-inner0 + block $__inlined_func$start:throw global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 1056 - i32.store - local.get $1 - i32.const 1216 - i32.store offset=8 - local.get $1 i32.const 12 - 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 1756 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 1056 - i32.store - loop $while-continue|0 - local.get $0 - i32.const 1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1756 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 1056 + i32.store + local.get $1 + i32.const 1216 + i32.store offset=8 + local.get $1 + i32.const 12 i32.add - local.tee $0 - i32.const 10 + 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 1756 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 1056 + i32.store + loop $while-continue|0 local.get $0 + i32.const 1 + i32.add + local.tee $0 i32.const 10 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 1216 + i32.const 1088 + i32.store offset=4 + local.get $0 + i32.const 10 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 1216 + i32.store offset=8 + i32.const 1248 + i32.const 1168 + i32.const 23 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1296 i32.store offset=8 - i32.const 1248 - i32.const 1168 - i32.const 23 - i32.const 7 - call $~lib/builtins/abort - unreachable + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 1296 - i32.store offset=8 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1328 - i32.store offset=12 - local.get $0 - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/pinSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/toSpace - i32.const 1588 - i32.const 1584 - i32.store - i32.const 1592 - i32.const 1584 - i32.store - i32.const 1584 - global.set $~lib/rt/itcms/fromSpace - memory.size - drop - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|07 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1328 + i32.store offset=12 + local.get $0 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/pinSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/toSpace + i32.const 1588 + i32.const 1584 + i32.store + i32.const 1592 + i32.const 1584 + i32.store + i32.const 1584 + global.set $~lib/rt/itcms/fromSpace + memory.size + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|08 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + br $while-continue|08 + end + end + end + call $~lib/rt/itcms/step + loop $while-continue|1 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step - br $while-continue|07 + br $while-continue|1 end end + br $__inlined_func$start:throw end - call $~lib/rt/itcms/step - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - br $while-continue|1 - end - end - return + i32.const 18160 + i32.const 18208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 18160 - i32.const 18208 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) (local $1 i32) @@ -1109,19 +1111,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1131,22 +1133,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18140 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1160,7 +1162,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1172,7 +1174,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1180,15 +1182,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1196,7 +1198,7 @@ else i32.const 1728 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1488 @@ -1206,7 +1208,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1732 @@ -1224,25 +1226,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index 1c629d6406..657bbe6d3a 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -58,6 +58,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $0 local.get $1 i32.eq @@ -92,47 +93,47 @@ i32.const 0 return end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 + local.get $0 + local.tee $2 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.eqz + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + i32.and + if + loop $do-loop|0 + local.get $2 + i64.load + local.get $1 + i64.load + i64.eq + if local.get $2 - i64.load + i32.const 8 + i32.add + local.set $2 local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end + i32.const 8 + i32.add + local.set $1 + 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 + block $__inlined_func$~lib/util/string/compareImpl loop $while-continue|1 local.get $0 local.tee $3 @@ -143,17 +144,16 @@ if local.get $2 i32.load16_u - local.tee $3 + local.tee $5 local.get $1 i32.load16_u local.tee $4 + i32.sub + local.set $3 + local.get $4 + local.get $5 i32.ne - if - local.get $3 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + br_if $__inlined_func$~lib/util/string/compareImpl local.get $2 i32.const 2 i32.add @@ -166,7 +166,9 @@ end end i32.const 0 + local.set $3 end + local.get $3 i32.eqz ) (func $~lib/rt/itcms/visitRoots @@ -816,38 +818,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -863,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 $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 - 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) @@ -1585,7 +1585,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store global.get $~lib/rt/itcms/total @@ -1622,13 +1622,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1662,16 +1662,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 @@ -1724,7 +1724,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1739,7 +1739,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1762,8 +1762,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 @@ -1776,11 +1776,11 @@ i32.const 0 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -1795,7 +1795,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 @@ -1807,7 +1807,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 local.get $0 i32.const 20 i32.add @@ -1820,10 +1820,9 @@ local.get $0 global.set $typeof/c global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1088 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=4 i32.const 1088 @@ -1935,19 +1934,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1957,22 +1956,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18220 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1986,7 +1985,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1998,7 +1997,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -2006,15 +2005,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -2022,7 +2021,7 @@ else i32.const 1792 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1552 @@ -2032,7 +2031,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -2050,25 +2049,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1 diff --git a/tests/compiler/wasi/abort.optimized.wat b/tests/compiler/wasi/abort.optimized.wat index 4c946afcb8..b78322598c 100644 --- a/tests/compiler/wasi/abort.optimized.wat +++ b/tests/compiler/wasi/abort.optimized.wat @@ -230,19 +230,19 @@ call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 19 i32.add - local.tee $0 + local.tee $3 i32.const 544106784 i32.store i32.const 1212 i32.load i32.const 1 i32.shr_u - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1216 - local.get $3 local.get $0 + local.get $3 i32.const 4 i32.add local.tee $0 diff --git a/tests/compiler/wasi/seed.optimized.wat b/tests/compiler/wasi/seed.optimized.wat index 1dd4b8acc5..848be996bd 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 a28ff852c7..150dbd3589 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -1193,47 +1193,46 @@ i64.shr_u i32.wrap_i64 local.tee $3 - local.tee $6 i32.const 100000 i32.lt_u if (result i32) - local.get $6 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $6 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $6 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $6 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $6 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $6 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $6 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $6 + local.get $3 i32.const 100000000 i32.ge_u i32.add @@ -1420,7 +1419,7 @@ i32.add local.tee $0 i32.load16_u - local.set $6 + local.set $9 loop $while-continue|3 local.get $1 local.get $12 @@ -1450,10 +1449,10 @@ i32.const 0 end if - local.get $6 + local.get $9 i32.const 1 i32.sub - local.set $6 + local.set $9 local.get $1 local.get $2 i64.add @@ -1462,7 +1461,7 @@ end end local.get $0 - local.get $6 + local.get $9 i32.store16 local.get $5 return @@ -1544,7 +1543,7 @@ i32.add local.tee $0 i32.load16_u - local.set $6 + local.set $9 loop $while-continue|6 local.get $1 local.get $2 @@ -1574,10 +1573,10 @@ i32.const 0 end if - local.get $6 + local.get $9 i32.const 1 i32.sub - local.set $6 + local.set $9 local.get $1 local.get $13 i64.add @@ -1586,7 +1585,7 @@ end end local.get $0 - local.get $6 + local.get $9 i32.store16 local.get $5 end @@ -3253,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 @@ -3278,7 +3277,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $7 + local.get $6 i32.const 2 i32.add else @@ -3288,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,10 +3330,10 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $8 - local.get $7 + local.set $8 + local.get $6 i32.const 56 - local.get $7 + local.get $6 i32.const 56 i32.gt_s select @@ -3351,6 +3350,7 @@ call $~lib/wasi/index/abort unreachable end + local.get $8 i32.const 12 local.get $6 i32.const 19 @@ -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 $10 + local.set $6 local.get $9 i32.const 4 i32.add @@ -3474,59 +3474,59 @@ call $~lib/wasi/index/abort unreachable end - local.get $10 + local.get $6 i32.const -4 i32.and local.get $9 i32.sub - local.tee $7 + local.tee $10 i32.const 16 i32.ge_u if + local.get $7 local.get $6 - local.get $10 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 $9 - local.get $7 + local.tee $6 + local.get $10 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $8 - local.get $9 + local.get $6 call $~lib/rt/tlsf/insertBlock else + local.get $7 local.get $6 - local.get $10 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 00bc803084..778cd42c77 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -674,38 +674,111 @@ (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 $0 i32.load offset=4 i32.const 3 @@ -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 $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 - 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) @@ -998,314 +996,313 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - i32.const 10 - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end + (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 + loop $while-continue|0 local.get $0 if - i32.const 0 - i32.const 1056 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $10 + i32.const 1 + i32.add + local.set $10 + br $while-continue|0 end + end + local.get $0 + if i32.const 0 - local.set $2 + i32.const 1056 i32.const 10 - local.set $0 - loop $while-continue|00 - local.get $0 - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - loop $while-continue|1 - local.get $0 - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|1 - end - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 29 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 30 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - br $while-continue|00 - end - end + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $10 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $while-continue|01 local.get $0 if - i32.const 0 - i32.const 1056 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $2 - i32.const 1 - local.set $0 - loop $while-continue|01 local.get $0 - local.tee $1 i32.const 1 i32.sub local.set $0 local.get $1 - if (result i32) - local.get $2 - i32.const 1 - i32.add - local.tee $2 - else + i32.const 1 + i32.add + local.set $1 + loop $while-continue|1 + local.get $0 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $11 + i32.const 1 + i32.add + local.set $11 + br $while-continue|1 + end + end + local.get $0 + if i32.const 0 + i32.const 1056 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $11 + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable end - br_if $while-continue|01 + br $while-continue|01 end + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $11 + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + local.set $0 + loop $while-continue|03 local.get $0 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + local.tee $1 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 + i32.sub local.set $0 - loop $while-continue|02 - local.get $0 + local.get $1 + if (result i32) + local.get $9 i32.const 1 i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $while-continue|02 - end - local.get $0 - i32.const 10 - i32.ne - if + local.tee $9 + else i32.const 0 - i32.const 1056 - i32.const 58 - i32.const 3 - call $~lib/builtins/abort - unreachable end + br_if $while-continue|03 + end + local.get $0 + i32.const -1 + i32.ne + if i32.const 0 - local.set $0 - loop $while-continue|03 (result i32) - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $while-continue|03 - local.get $0 - end + i32.const 1056 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $9 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $while-continue|05 + local.get $8 + i32.const 1 + i32.add + local.tee $8 i32.const 10 i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 72 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + br_if $while-continue|05 + end + local.get $8 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + loop $while-continue|07 + local.get $7 + i32.const 1 + i32.add + local.tee $7 i32.const 10 - local.set $0 - loop $while-continue|04 - local.get $0 - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|04 - end - end + i32.ne + br_if $while-continue|07 + end + local.get $7 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 72 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $while-continue|013 local.get $0 if - i32.const 0 - i32.const 1056 - i32.const 117 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - i32.const 10 - local.set $2 - loop $while-continue|05 local.get $0 - if - loop $while-continue|16 - local.get $2 - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|16 - end - end - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|05 - end + i32.const 1 + i32.sub + local.set $0 + br $while-continue|013 end + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const 10 + local.set $11 + loop $while-continue|015 local.get $0 if - i32.const 0 - i32.const 1056 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - if - i32.const 0 - i32.const 1056 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $while-continue|117 + local.get $11 + if + local.get $11 + i32.const 1 + i32.sub + local.set $11 + br $while-continue|117 + end + end + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|015 end - memory.size - i32.const 16 - i32.shl - i32.const 17908 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace + end + local.get $0 + if i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $11 + if + i32.const 0 + i32.const 1056 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 17908 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1524 i32.lt_s @@ -1316,30 +1313,30 @@ i32.store local.get $0 call $while/Ref#constructor - local.tee $2 + local.tee $0 i32.store - loop $while-continue|06 - local.get $2 + loop $while-continue|08 + local.get $0 if - local.get $1 + local.get $6 i32.const 1 i32.add - local.tee $1 + local.tee $6 i32.const 10 i32.eq if i32.const 0 - local.set $2 + local.set $0 else global.get $~lib/memory/__stack_pointer call $while/Ref#constructor - local.tee $2 + local.tee $0 i32.store end - br $while-continue|06 + br $while-continue|08 end end - local.get $1 + local.get $6 i32.const 10 i32.ne if @@ -1350,7 +1347,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 if i32.const 0 i32.const 1056 @@ -1363,8 +1360,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1379,28 +1374,28 @@ i32.store local.get $0 call $while/Ref#constructor - local.tee $2 + local.tee $0 i32.store - loop $while-continue|08 + loop $while-continue|012 call $while/Ref#constructor if - block $while-break|09 - local.get $1 + block $while-break|011 + local.get $5 i32.const 1 i32.add - local.tee $1 + local.tee $5 i32.const 10 i32.eq if i32.const 0 - local.set $2 - br $while-break|09 + local.set $0 + br $while-break|011 end - br $while-continue|08 + br $while-continue|012 end end end - local.get $1 + local.get $5 i32.const 10 i32.ne if @@ -1411,7 +1406,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 if i32.const 0 i32.const 1056 @@ -1424,40 +1419,34 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - loop $while-continue|07 - local.get $0 + loop $while-continue|019 + local.get $3 i32.const 1 i32.add - local.tee $0 + local.tee $3 i32.const 0 i32.le_s - br_if $while-continue|07 + br_if $while-continue|019 end - i32.const 0 - local.set $0 - loop $while-continue|09 - local.get $0 + loop $while-continue|021 + local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $2 i32.const 0 i32.le_s - br_if $while-continue|09 + br_if $while-continue|021 end - i32.const 0 - local.set $0 loop $do-loop|0 - local.get $0 + local.get $4 i32.const 1 i32.add - local.tee $0 + local.tee $4 i32.const 3 i32.lt_s br_if $do-loop|0 end - local.get $0 + local.get $4 i32.const 3 i32.ne if @@ -1472,23 +1461,23 @@ i32.const 0 i32.gt_s if - loop $while-continue|011 + loop $while-continue|023 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|011 + br $while-continue|023 end end end call $~lib/rt/itcms/step drop - loop $while-continue|112 + loop $while-continue|125 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|112 + br $while-continue|125 end end global.get $~lib/rt/itcms/total @@ -1564,7 +1553,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 @@ -1601,13 +1590,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1641,16 +1630,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 @@ -1703,7 +1692,7 @@ i32.and i32.const 28 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1718,7 +1707,7 @@ i32.const 32 i32.add local.tee $4 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 1 @@ -1741,8 +1730,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 @@ -1755,11 +1744,11 @@ i32.const 0 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 $2 + local.get $1 global.get $~lib/rt/itcms/white i32.or i32.store offset=4 @@ -1774,7 +1763,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 @@ -1786,7 +1775,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 local.get $0 i32.const 20 i32.add @@ -1806,19 +1795,19 @@ local.get $0 i32.const 20 i32.sub - local.tee $1 + local.tee $0 i32.load offset=4 i32.const 3 i32.and i32.eq if global.get $~lib/rt/itcms/iter - local.get $1 + local.get $0 i32.eq if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 @@ -1828,22 +1817,22 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 global.set $~lib/rt/itcms/iter end block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $1 + local.get $0 i32.load offset=4 i32.const -4 i32.and - local.tee $0 + local.tee $1 i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17908 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1857,7 +1846,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $2 i32.eqz @@ -1869,7 +1858,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 local.get $2 i32.store offset=8 local.get $2 @@ -1877,15 +1866,15 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $2 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) @@ -1893,7 +1882,7 @@ else i32.const 1488 i32.load - local.get $0 + local.get $1 i32.lt_u if i32.const 1296 @@ -1903,7 +1892,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -1921,25 +1910,25 @@ local.set $3 local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + 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/visitCount i32.const 1